我有一个来自我正在使用的插件的任务,我想只在编译调试buildType时覆盖它。
我尝试在调试范围内覆盖:
buildTypes {
debug {
task newRelicInstrumentTask(overwrite: true) << {}
task newRelicDeinstrumentTask(overwrite: true) << {}
}
}
,但它也覆盖了它的版本buildType。
我还尝试了以下操作:
buildTypes.all{ theBuildType ->
print(theBuildType.name)
if (theBuildType.name == "debug")
{
task newRelicInstrumentTask(overwrite: true) << {}
task newRelicDeinstrumentTask(overwrite: true) << {}
}
}
但是当我执行assemblerrelease时,它也会覆盖它。
所以我怎么能覆盖它只有当我运行assembleDebug?
类似于
gradle.taskGraph.whenReady { TaskExecutionGraph teg ->
if (teg.hasTask('assembleDebug')) {
tasks.getByPath('newRelicInstrumentTask').enabled = false
tasks.getByPath('newRelicDeinstrumentTask').enabled = false
}
}
看到TaskExecutionGraph
这是最终效果最好的:
if ((gradle.startParameter.taskNames.size() == 1) && (gradle.startParameter.taskNames.get(0).contains(
"assembleDebug"))) {
task newRelicInstrumentTask(overwrite: true) << {
}
task newRelicDeinstrumentTask(overwrite: true) << {
}
}