天天看點

android gradle 在assembleRelease之前 or 之後執行自定義task背景思路源碼

背景

項目中需要在apk打包完之後做一些任務,比如送出mapping檔案等

思路

自定義一個plugin,在plugin被應用的時候,建立一個task,并标記該task在

assembleRelease

之後執行

gradle的plugin使用這裡不講。

源碼

Task diyTask = project.task('diyTask') {
    doLast {
        Utils.println("diy task run")
    }
}

project.tasks.whenTaskAdded { Task theTask ->
    if (theTask.name == 'assembleRelease') {
        theTask.dependsOn(diyTask)            // 編譯完apk之後再執行自定義task
    }
}
           

如果你想讓自定義task在

assembleRelease

之前執行,需要計入一個

mustRunAfter

依賴

Task diyTask = project.task('diyTask') {
    doLast {
        Utils.println("diy task run")
    }
}

project.tasks.whenTaskAdded { Task theTask ->
    if (theTask.name == 'assembleRelease') {
        theTask.dependsOn(diyTask)
        theTask.mustRunAfter(diyTask)				// diyTask在assembleRelease之前執行
    }
}
           

繼續閱讀