我有两个几乎相同的配置文件。我不想在每个配置中重复配置,我希望一个配置文件从另一个配置文件“继承”,但我没有看到使用maven 3执行此操作的明显方法。一个maven配置文件是否可以继承另一个maven配置文件?
是否可以在配置文件中继承配置文件?
我有两个几乎相同的配置文件。我不想在每个配置中重复配置,我希望一个配置文件从另一个配置文件“继承”,但我没有看到使用maven 3执行此操作的明显方法。一个maven配置文件是否可以继承另一个maven配置文件?
是否可以在配置文件中继承配置文件?
不,配置文件不能被继承。
但是,您可以拥有多个活动配置文件,通过将两个配置文件中的常见元素分解为第三个配置文件,从而在您激活其他两个配置文件中的任何一个时激活该配置文件,从而完成大致相同的工作。
严格的说,配置文件不会继承在父pom中定义的配置文件不在子poms中,根据maven文档。但是,在父poms中指定的属性和构建插件(而不是pluginManagement)可以被激活,从而修改子poms的构建环境。 例如,如果我有一个父POM A,它具有以下配置文件部分:
</profiles>
<profile>
<id>integrationTest</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<parallel>none</parallel>
<excludes>
<exclude>**/*Test.java</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<configuration>
<includes
<include>**/*IT.java</include>
</includes>
<!-- need to exclude nothing as it is possible that some by default some tests are excluded and we need to override that -->
<excludes>
<exclude>none</exclude>
</excludes>
<parallel>none</parallel>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
然后它没有在默认配置构建故障安全插件,但通过从一个POM继承的孩子聚甲醛乙父标记,然后从子pom目录运行'mvn clean install -P integrationTest',它将采用A中指定的插件信息。