背景
項目中需要在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之前執行
}
}