我知道我可以执行#gradle build -x test'但是有没有办法创建一个自定义Gradle任务,比如buildNoTests,它将构建我的所有项目,但会完全忽略测试(不编译/运行它们吗?
我读到了'汇编'任务是不够的,因为它可能会错过其他任务,这些任务不是测试,而是包含在' build'任务。
答案 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 }
}
}
}
}
}