代码之家  ›  专栏  ›  技术社区  ›  Tsury

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

  •  1
  • Tsury  · 技术社区  · 8 年前

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

    我读到“组装”任务是不够的,因为它可能会错过其他任务,这些任务不是测试,但包含在“构建”任务中。

    1 回复  |  直到 8 年前
        1
  •  1
  •   mkobit    8 年前

    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 }
                   }
               }
           }
        }
    }