Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gradle 运行其他任务时跳过任务_Gradle_Skip - Fatal编程技术网

Gradle 运行其他任务时跳过任务

Gradle 运行其他任务时跳过任务,gradle,skip,Gradle,Skip,我在gradle项目中添加了一项任务: task deploy() { dependsOn "build" // excludeTask "test" <-- something like this doFirst { // ... } } 如何以编程方式排除测试任务?您需要配置任务图,而不是配置部署任务本身。以下是您需要的一段代码: gradle.taskGraph.whenReady { graph -> if (gra

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

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

    doFirst {
       // ...
    }
}

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

您需要配置任务图,而不是配置
部署
任务本身。以下是您需要的一段代码:

gradle.taskGraph.whenReady { graph ->
    if (graph.hasTask(deploy)) {
        test.enabled = false
    }
}

警告:这将跳过
测试
任务定义的操作,不会跳过
测试
所依赖的任务。因此,这与通过命令行上的
-x测试
的行为不同

我不知道部署任务做什么,但它可能不应该依赖于“构建”任务。“构建”任务是一个非常粗粒度的生命周期任务,其中包含大量您可能不想要的内容


相反,它应该正确定义其输入(可能是您想要部署的工件),然后Gradle将只运行必要的任务来构建这些输入。那你就不需要任何排除了。

嗨,我知道这在很久以前就得到了回答,但我现在正在尝试,使用gradle 6.0.1,我无法让它正常工作。我的情况有点不同,你能检查一下吗?谢谢注意,这仍然会执行声明为依赖的任务。因此,这与在命令行上通过
-x测试不同。我还没有找到跳过一个任务及其所有“依赖项”的方法,我很想知道一个
gradle.taskGraph.whenReady { graph ->
    if (graph.hasTask(deploy)) {
        test.enabled = false
    }
}