Reputation: 381
I have a task that comes from a plugin i am using and i want to overwrite it only when compiling for debug buildType.
I tried overwriting in the debug scope:
buildTypes {
debug {
task newRelicInstrumentTask(overwrite: true) << {}
task newRelicDeinstrumentTask(overwrite: true) << {}
}
}
but it also overridden it for the release buildType.
I also tried doing the following:
buildTypes.all{ theBuildType ->
print(theBuildType.name)
if (theBuildType.name == "debug")
{
task newRelicInstrumentTask(overwrite: true) << {}
task newRelicDeinstrumentTask(overwrite: true) << {}
}
}
But it also overides it when i am executing assembleRelease.
So how can i override it only when i am running assembleDebug?
Upvotes: 1
Views: 2501
Reputation: 381
This what worked best eventually:
if ((gradle.startParameter.taskNames.size() == 1) && (gradle.startParameter.taskNames.get(0).contains(
"assembleDebug"))) {
task newRelicInstrumentTask(overwrite: true) << {
}
task newRelicDeinstrumentTask(overwrite: true) << {
}
}
Upvotes: 1
Reputation: 28081
Something like:
gradle.taskGraph.whenReady { TaskExecutionGraph teg ->
if (teg.hasTask('assembleDebug')) {
tasks.getByPath('newRelicInstrumentTask').enabled = false
tasks.getByPath('newRelicDeinstrumentTask').enabled = false
}
}
Upvotes: 1