多项目构建:为每个子项目执行函数

Multi project build: execute function for every subproject

我有这个文件夹结构:

每个子项目都有自己的 build.gradle 配置。 我在子项目 1 和 3 中进行了一些测试(子项目 2 不包含任何测试,我不确定我的问题是否需要此信息)。

我在测试中使用 JUnit5。为了在构建项目时执行它们,我在我的子项目的每个 build.gradle 中添加了它。

tasks.test {
    useJUnitPlatform()
}

一切正常,所有测试都在执行,但我不想为这个小片段触及每个配置文件。我想要一些共同点。

我一直在尝试完成 gradle-docs 的文档,但没有成功。

这就是我要添加到根目录中的内容 build.gradle:

subprojects {
    tasks.test(){
        doLast {
            useJUnitPlatform()
        }
    }
}

但它要么说,'test' 已经定义,要么类似“无法在类型为 org.gradle.api.internal.tasks.DefaultTaskContainer 的任务集上找到参数 [buildClosure] 的方法 test()。

感谢任何帮助!

你想得太复杂了。这更容易。只需添加

subprojects {
    test {
        useJUnitPlatform()
    }
}

到项目的顶级 build.gradle 文件。您可以将(大部分)任何应该在每个子项目中完成的内容添加到此块。

在project/build中设置如下内容。gradle

subprojects {
   apply plugin : 'java'
   test.useJUnitPlatform()
}

现在,测试任务已在根项目中配置为对其所有子项目使用 junit5。注意,'java' 插件也适用于子项目。现在,任何子项目都在根项目级别本身进行了预配置。