【发布时间】:2018-05-23 11:50:42
【问题描述】:
我有一个名为 test 的任务,代码如下:
tasks {
"test"(Test::class) {
useJUnitPlatform {
excludeTags = setOf("e2e", "integration")
}
}
当使用 gradle 命令 ./gradlew test --info 执行此任务时,gradle 正在扫描我项目的所有模块并生成配置,其中包含来自名为 data-export-ui-kjs 的模块的一些任务。
我希望 gradle 在配置和执行 test 任务时从 data-export-ui-kjs 模块中排除任务。我已经使用下面的代码来实现这一点,但它没有成功
gradle.taskGraph.whenReady {
TaskExecutionGraphListener { graph ->
if(it.name.contains("data-export-ui-kjs")) {
it.enabled = false
}
}
}
请帮助我完成这项工作。提前致谢
【问题讨论】:
-
任务名称不包含其所属模块的名称。使用任务的
path而不是name应该可以工作。 -
修改后的代码如下。但是 gradle 仍然配置和执行 data-export-ui-kjs 模块的任务: tasks { "test"(Test::class) { useJUnitPlatform { excludeTags = setOf("e2e", "integration") } gradle.taskGraph.whenReady { TaskExecutionGraphListener { graph -> graph.allTasks.forEach { task -> if(task.path.contains("data-export-ui-kjs")) { task.enabled = false } } } } }
标签: gradle kotlin build.gradle junit5