自定义 Gradle 任务来构建所有项目而不进行测试?

Custom Gradle task to build all projects without testing?

我知道我可以执行 'gradle build -x test',但是有没有办法创建自定义 Gradle 任务,比如 buildNoTests,它将构建我所有的项目,但会完全忽略测试(不要compile/run 他们)?

我读到 'assemble' 任务还不够,因为它可能会错过其他不是测试但包含在 'build' 任务中的任务。

将其放在根目录中 build.gradle

allprojects {
    afterEvaluate {
        def buildTask = tasks.findByPath('build')
        if (buildTask) {
           task buildNoTests {
               dependsOn buildTask
           }
           gradle.taskGraph.whenReady { TaskExecutionGraph graph ->
               if (graph.hasTask(buildNoTests)) {
                   def skipNames = ['test', 'compileTestJava', 'processTestResources', 'testClasses'] as Set
                   Collection<Task> testTasks = graph.allTasks.findAll { skipNames.contains(it.name) }
                   testTasks.each { it.enabled = false }
               }
           }
       }
    }
}