gradle - 多项目构建:为每个子项目执行功能
问题描述
我有这个文件夹结构:
- 项目/子项目1
- 项目/子项目2
- 项目/子项目3
- 项目/build.gradle(根配置)
每个子项目都有自己的 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()。
任何帮助表示赞赏!
解决方案
在 project/build.gradle 中设置以下内容
subprojects {
apply plugin : 'java'
test.useJUnitPlatform()
}
现在,测试任务在根项目中配置为将 junit5 用于其所有子项目。注意,“java”插件也适用于子项目。现在,任何子项目都在根项目级别本身进行了预配置。
推荐阅读
- java - 检测碰撞侧
- python - 在 Windows 上使用 Pyspark 连接到 Hive Metastore(使用 Kerberos 身份验证)
- linq - 你如何转换 linq 查询 ToList
- c++ - 关于指向指针数组的指针
- sql-server - 尝试通过 ADOMD 连接到 SQL Server 分析服务时出错
- r - 如何使用 R studio 计算百分比
- java - 如何使java中的字符串了解当前本地时间
- f# - F# 中两个列表的笛卡尔积使用递归和辅助函数
- python - Web Scraping LXML 和请求
- python - Python issubset 在一组集合上