Java Spring Boot pom-如何从聚合器pom继承配置文件和属性? 目标
我正在向Maven构建添加集成测试。我希望实现以下目标:Java Spring Boot pom-如何从聚合器pom继承配置文件和属性? 目标,java,maven,spring-boot,properties,integration-testing,Java,Maven,Spring Boot,Properties,Integration Testing,我正在向Maven构建添加集成测试。我希望实现以下目标: 默认情况下仅运行单元测试 必须能够只运行集成测试 现状 任务变得更加复杂,因为这是一个现有的应用程序,其maven模块的结构(层次结构)令人困惑。我会尽力解释的 所以我有一个聚合器pom(超级pom),看起来像 com.group.id 应用程序名称 SpringBootApp1 SpringBootApp2 聚甲醛 地方的 真的 真的 假的 试验 假的 真的 还有一些不是从超级pom继承的模块pom(它们继承自spring boo
- 默认情况下仅运行单元测试
- 必须能够只运行集成测试
com.group.id
应用程序名称
SpringBootApp1
SpringBootApp2
聚甲醛
地方的
真的
真的
假的
试验
假的
真的
还有一些不是从超级pom继承的模块pom(它们继承自spring boot starter父级
),看起来像
com.group.id
spring启动应用程序
罐子
Spring启动应用程序
org.springframework.boot
spring启动程序父级
1.5.10.1发布
SpringBootApp1
org.apache.maven.plugins
maven surefire插件
2.21.0
${skip.unit.tests}
org.apache.maven.plugins
maven故障保护插件
2.21.0
集成测试
集成测试
验证
${skip.integration.tests}
如您所见,我在聚合器pom中定义了skip.integration.tests
和skip.unit.tests
属性(不同配置文件的属性值不同),并尝试在模块pom中使用它们
问题
当我执行mvn clean test-p test
或mvn clean verify-p test
来运行测试时,我看到没有应用属性(例如,尽管跳过.unit.tests
为true
,但执行单元测试)
我可以将聚合器pom声明为模块pom的父级,也许这可以解决问题,但是模块pom已经将springbootstarter父级声明为它们的父级
问题
- 是否可以使用聚合器pom中的属性而不使其成为父级
- 如何使用聚合器pom中的属性将集成测试与单元测试分开
ps.我向您保证我遵守命名约定:单元测试的命名类似于
*Test.java
,集成测试的命名类似于*IT.java
。因此maven failsafe plugin和maven surefire plugin将它们区分开来。如果您可以将聚合器作为模块的父级,然后将聚合器配置为具有spring boot starter父级
作为父级,则此问题将得到解决。(假设您的聚合器当前没有任何父级)
或者您可以通过命令行传递skip test属性,如-Dskip.unit.tests=true
(在这里您可以调用mvn clean verify)
作为旁注,当您执行
mvn test
命令时,您不必指定要跳过的集成测试,因为它是在生命周期的稍后阶段。(它不会以任何方式执行)我不能将聚合器作为父级。谢谢你指路!