Java Maven配置文件不会在子模块中继承
我试图通过使用maven概要文件来分离不同类型的测试(单元、集成、验收)。这是主pom文件的一部分:Java Maven配置文件不会在子模块中继承,java,maven,inheritance,automated-tests,profiles,Java,Maven,Inheritance,Automated Tests,Profiles,我试图通过使用maven概要文件来分离不同类型的测试(单元、集成、验收)。这是主pom文件的一部分: <properties> <build.profile.id>dev</build.profile.id> <skip.unit.tests>false</skip.unit.tests> <skip.integration.tests>
<properties>
<build.profile.id>dev</build.profile.id>
<skip.unit.tests>false</skip.unit.tests>
<skip.integration.tests>true</skip.integration.tests>
<skip.acceptance.tests>true</skip.acceptance.tests>
</properties>
<profiles>
<profile>
<id>dev</id>
</profile>
<profile>
<id>integration-test</id>
<properties>
<build.profile.id>integration-test</build.profile.id>
<skip.unit.tests>true</skip.unit.tests>
<skip.integration.tests>false</skip.integration.tests>
<skip.acceptance.tests>true</skip.acceptance.tests>
</properties>
</profile>
<profile>
<id>acceptance-test</id>
<properties>
<build.profile.id>acceptance-test</build.profile.id>
<skip.unit.tests>true</skip.unit.tests>
<skip.integration.tests>true</skip.integration.tests>
<skip.acceptance.tests>false</skip.acceptance.tests>
</properties>
</profile>
</profiles>
<build>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.17</version>
<configuration>
<skipTests>${skip.unit.tests}</skipTests>
<includes>
<include>**/*UnitTests.java</include>
</includes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.17</version>
<executions>
<execution>
<id>integration-tests</id>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
<configuration>
<skipTests>${skip.integration.tests}</skipTests>
<includes>
<include>**/*IntegrationTests.java</include>
</includes>
</configuration>
</execution>
<execution>
<id>acceptance-tests</id>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
<configuration>
<skipTests>${skip.acceptance.tests}</skipTests>
<includes>
<include>**/*AcceptanceTests.java</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
对于集成和验收测试,我使用故障保护插件:运行集成测试的示例如下:
mvn clean verify -P integration-test
当我从主pom模块运行它时,它工作正常,但从子模块运行它时,它不工作。测试只是被忽略了。查看子模块的有效pom,我没有看到配置文件。我是做错了什么,还是这是maven的预期行为?如果概要文件继承(需要级联到层次结构中最深的模块)不能通过这种方式实现,那么如何实现呢
更新:这是项目层次结构
项目目录
--main module
--commons module
--administration
----domain
----data
----business
----web
对于多模块项目,通常不直接执行模块。相反,您应该始终执行主模块,但只指定所需的子模块。与直接运行模块相关的问题还有很多
只是仔细检查了我参与的一些多模块项目,我们正在使用
将插件配置从父POM传播到子项目。对于多模块项目,您通常不会直接执行模块。相反,您应该始终执行主模块,但只指定所需的子模块。与直接运行模块相关的问题还有很多
只是仔细检查了我参与的一些多模块项目,我们正在使用
将插件配置从父POM传播到子项目。对于多模块项目,您通常不会直接执行模块。相反,您应该始终执行主模块,但只指定所需的子模块。与直接运行模块相关的问题还有很多
只是仔细检查了我参与的一些多模块项目,我们正在使用
将插件配置从父POM传播到子项目。对于多模块项目,您通常不会直接执行模块。相反,您应该始终执行主模块,但只指定所需的子模块。与直接运行模块相关的问题还有很多
只是仔细检查了我参与的一些多模块项目,我们正在使用
将插件配置从父POM传播到子项目。您的POM层次结构是什么?基于这个--它应该会起作用。我的意思是。。。您的模块将多模块POM作为其父模块,对吗?我已更新了问题。是的,他们有。从官方资料来看,遗产应该是有效的。矛盾的信息到此为止:)。重新“查看子模块的有效pom,我看不到配置文件。”我假设聚合器项目(声明s的项目)不是(子)模块中或其Pearent中声明的项目。继承和聚集不一定具有相同的树层次结构,请参见。您的POM层次结构是什么?基于这个--它应该会起作用。我的意思是。。。您的模块将多模块POM作为其父模块,对吗?我已更新了问题。是的,他们有。从官方资料来看,遗产应该是有效的。矛盾的信息到此为止:)。重新“查看子模块的有效pom,我看不到配置文件。”我假设聚合器项目(声明s的项目)不是(子)模块中或其Pearent中声明的项目。继承和聚集不一定具有相同的树层次结构,请参见。您的POM层次结构是什么?基于这个--它应该会起作用。我的意思是。。。您的模块将多模块POM作为其父模块,对吗?我已更新了问题。是的,他们有。从官方资料来看,遗产应该是有效的。矛盾的信息到此为止:)。重新“查看子模块的有效pom,我看不到配置文件。”我假设聚合器项目(声明s的项目)不是(子)模块中或其Pearent中声明的项目。继承和聚集不一定具有相同的树层次结构,请参见。您的POM层次结构是什么?基于这个--它应该会起作用。我的意思是。。。您的模块将多模块POM作为其父模块,对吗?我已更新了问题。是的,他们有。从官方资料来看,遗产应该是有效的。矛盾的信息到此为止:)。重新“查看子模块的有效pom,我看不到配置文件。”我假设聚合器项目(声明s的项目)不是(子)模块中或其Pearent中声明的项目。继承和聚集不一定具有相同的树层次结构,请参阅。感谢您的建议。正如您所说,这不是一个真正的问题,因为我可以运行主模块。我只是想看看这是否可能,因为这对我来说非常方便。我将有多个子模块,也将有他们的子模块。我想把它们放在单独的存储库中,这样它们就可以独立开发。可以独立开发模块,但它们所依赖的所有模块,包括父模块,都必须已经部署。顺便说一句,你的子模块正确地声明了父母吗?谢谢你的建议。正如您所说,这不是一个真正的问题,因为我可以运行主模块。我只是想看看这是否可能,因为这对我来说非常方便。我将有多个子模块,也将有他们的子模块。我想把它们放在单独的存储库中,这样它们就可以独立开发。可以独立开发模块,但它们所依赖的所有模块,包括父模块,都必须已经部署。顺便说一句,你的子模块正确地声明了父母吗?谢谢你的建议。正如您所说,这不是一个真正的问题,因为我可以运行主模块。我只是想看看这是否可能,因为这对我来说非常方便。
--main module
--commons module
--administration
----domain
----data
----business
----web