首页 > 解决方案 > 多项目构建:为每个子项目执行功能

问题描述

我有这个文件夹结构:

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

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

tasks.test {
    useJUnitPlatform()
}

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

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

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

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

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

任何帮助表示赞赏!

标签: gradlejunitjunit5

解决方案


在 project/build.gradle 中设置以下内容

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

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


推荐阅读