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