'How can I disable a task in build.gradle
I want to skip some tasks when I run gradle build
. I know that it can be done from command line with -x
:
gradle build -x unwantedTask
My question is how can the same result be achieved in the build.gradle?
Solution 1:[1]
You can try e.g.:
unwantedTask.enabled = false
Solution 2:[2]
Because I need to disable a bunch of tasks, so I use the following codes before apply plugin:
in my build.gradle
file:
tasks.whenTaskAdded {task ->
if(task.name.contains("unwantedTask")) {
task.enabled = false
}
}
Solution 3:[3]
For a bit more generic approach, you can:
unwantedTask.onlyIf { <expression> }
For instance:
compileJava.onlyIf { false }
Advanced IDEs, like IDEA, through code completion, will give you a lots of what you can do on any given object in the build.gradle
- it's just a Groovy script, after all.
Solution 4:[4]
As hinted to by @LukasKörfer in a comment, to really remove a task from the build, instead of just skipping it, one solution is to add this to your build script:
project.gradle.startParameter.excludedTaskNames.add('yourTaskName')
However this seems to remove the task for all subprojects.
Solution 5:[5]
Examples for Kotlin DSL (build.gradle.kts):
tasks.clean {
isEnabled = false
}
tasks.getByName("MyTaskName") {
onlyIf { System.getenv()["CI"] == "true" }
}
Solution 6:[6]
project.gradle.taskGraph.whenReady { graph ->
project.tasks.findAll().forEach { task ->
if (task.name.contains("<your-text>")) {
task.enabled = false
}
}
}
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | Opal |
Solution 2 | NO127 |
Solution 3 | |
Solution 4 | |
Solution 5 | |
Solution 6 | kolobok |