Java Maven配置文件不会在子模块中继承

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>

我试图通过使用maven概要文件来分离不同类型的测试(单元、集成、验收)。这是主pom文件的一部分:

        <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