天天看点

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之前执行
    }
}
           

继续阅读