是否可以设置Gradle任务依赖项以排除任务?

时间:2016-01-29 03:49:05

标签: gradle

我们在构建生命周期任务时应该运行一切来快速检查代码。它看起来像这样:

  task minimalBuild(dependsOn: [jar, testJar, javadoc])

有人说它也应该运行检查,这似乎是合理的,除非我依赖check本身,check取决于test,所以所有的测试都会运行而且它是不再是快速构建。

我当然可以手动列出单独的检查,这是我现在最好的想法,但每次有人安装新的检查工具时,他们都必须更新此列表,他们可能不知道他们必须这样做。 / p>

至少有一种方法可以以编程方式执行此操作吗?我可以minimalBuild取决于“除check以外的所有test所依赖的内容吗?”

1 个答案:

答案 0 :(得分:2)

您可以通过taskGraph进行配置,如下所示:

gradle.taskGraph.whenReady { graph ->
    if (graph.hasTask(minimalBuild)) {
        tasks.withType(Test){
            enabled = false
        }
    }
}

此配置应添加到脚本的根目录中。它等待,直到执行图已准备好(它包含所有应该真正执行的任务),之后它检查,是否将执行minimalBuild任务,如果是,则它将禁用所有测试类型的任务