Gradle 依赖于构建任务而不进行测试的渐变自定义任务

Gradle 依赖于构建任务而不进行测试的渐变自定义任务,gradle,build.gradle,Gradle,Build.gradle,我正在使用gradle 6.0.1 我正在尝试编写我的on任务,但我希望首先执行构建任务,但不进行测试 我试过(从build.gradle): 然而,我无法找到一种不运行测试就调用build的方法,因为我会运行测试 gradlebuild-x测试 是否有可能实现此功能 我可以使用的另一个选项是,在startEnv任务中检查构建是否已经存在,并仅在构建存在时运行此任务-是否有方法查询构建是否存在?(这是一个多模块项目,因此我不确定是否足以检查根项目上是否存在构建目录) 我遵循这些评论并尝试了在中提

我正在使用gradle 6.0.1

我正在尝试编写我的on任务,但我希望首先执行构建任务,但不进行测试

我试过(从build.gradle):

然而,我无法找到一种不运行测试就调用build的方法,因为我会运行测试

gradlebuild-x测试

是否有可能实现此功能

我可以使用的另一个选项是,在startEnv任务中检查构建是否已经存在,并仅在构建存在时运行此任务-是否有方法查询构建是否存在?(这是一个多模块项目,因此我不确定是否足以检查根项目上是否存在构建目录)

我遵循这些评论并尝试了在中提到的解决方案

我在build.gradle中添加了:

task startEnv(type: GradleBuild) {
    tasks = ['build']
    doLast {
        // START ENV CODE
    }
}
gradle.taskGraph.whenReady { graph ->
    if (graph.hasTask(startEnv)) {
        println("DEBUG1")
        test.enabled = false
    }
}

task startEnv(type: GradleBuild) {
    tasks = ['build']
    doLast {
       // START ENV CODE
    }
}
但当我运行./gradlew startEnv时,它仍然失败,因为在当前阶段,我知道它们应该失败。 当我执行这个命令时,我可以看到DEBUG1打印,但是构建失败,测试失败


谢谢,

这是否回答了您的问题?嗨,谢谢,我试过了,但没用。我正在更新我的问题,为什么任务
startEnv
的类型是
GradleBuild
——似乎太重了。而是定义一个简单的任务并设置依赖项。另外,您确定
test.enabled
指的是任务吗?请尝试
project.tasks.test.enabled=false
。这可能会有所不同。正如Opal所说,这取决于构建,类似于本例。请注意,可能依赖于比生成更具体的子任务,然后您可能不需要排除测试任务。@Opal起初我确实尝试过这种方法,但是生成没有运行。我有一个多模块项目,top build.gradle实际上做得不多,当我采用这种方法时,我设置了“dependsOn”build,模块(子项目)没有构建,我发现在同一线程上使用GradleBuild任务效果很好。我现在将尝试启用project.tasks.test.com并将更新的方法。非常感谢。