我在gradle项目中添加了一项任务:
task deploy() {
dependsOn "build"
// excludeTask "test" <-- something like this
doFirst {
// ...
}
}
现在build
任务始终在deploy
任务之前运行。这很好,因为构建任务包含许多步骤。现在我想明确禁用其中一个包含的任务。
通常我会使用
从命令行禁用它gradle deploy -x test
如何以编程方式排除test
任务?
答案 0 :(得分:14)
您需要配置任务图,而不是配置deploy
任务本身。这是您需要的代码:
gradle.taskGraph.whenReady { graph ->
if (graph.hasTask(deploy)) {
test.enabled = false
}
}
答案 1 :(得分:2)
我不知道您的部署任务的作用,但它可能不应该依赖于“构建”。任务。 &#39;构建&#39;任务是一个非常粗糙的生命周期任务,包括你可能不想要的大量东西。
相反,它应该正确定义其输入(可能是您要部署的工件),然后Gradle将只运行必要的任务来构建这些输入。然后你不再需要任何排除。