运行其他任务时跳过任务

Mar*_*cel 9 skip gradle

我在gradle项目中添加了一个任务:

task deploy() {
    dependsOn "build"
    // excludeTask "test"  <-- something like this

    doFirst {
       // ...
    }
}
Run Code Online (Sandbox Code Playgroud)

现在build任务总是在deploy任务之前运行.这很好,因为构建任务包含许多步骤.现在我想明确禁用其中一个包含的任务.

通常我从命令行禁用它

gradle deploy -x test
Run Code Online (Sandbox Code Playgroud)

如何以test编程方式排除任务?

Opa*_*pal 15

您需要配置任务图而不是配置deploy任务本身.这是您需要的代码段:

gradle.taskGraph.whenReady { graph ->
    if (graph.hasTask(deploy)) {
        test.enabled = false
    }
}
Run Code Online (Sandbox Code Playgroud)