自定义Gradle任务无需测试即可构建所有项目?

时间:2016-10-19 13:20:49

标签: testing gradle build.gradle gradlew

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

我读到了'汇编'任务是不够的,因为它可能会错过其他任务,这些任务不是测试,而是包含在' build'任务。

1 个答案:

答案 0 :(得分:1)

Put this in the root 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 }
               }
           }
       }
    }
}