在自定义任务的子项目中运行 gradle build(test)

Dar*_*all 5 gradle kotlin build.gradle gradle-kotlin-dsl

如何在 build.gradle.kts 中的自定义任务中运行任务构建或测试某些子项目?例如,我有子模块:firstA、secondA、thirdA。我只想为 firstA 和thirdA 运行内置自定义任务。

settings.gradle.kts

rootProject.name = "myProject"
include(
  "modules:firstA",
  "modules:secondA",
  "modules:thirdA"
)
Run Code Online (Sandbox Code Playgroud)

Dea*_*eef 6

在根项目中注册一个gradle任务,然后迭代子项目并按名称过滤它们,然后将任务依赖于子项目的测试任务。

例子:

tasks.register("mytest") {
    dependsOn(subprojects.mapNotNull {
        when (it.name) {
            "firstA", "thirdA" -> it.tasks.findByName("test")
            else -> null
        }
    })
}
Run Code Online (Sandbox Code Playgroud)