在maven多模块项目中,有一个子模块需要从外部父项目继承。因此,它不能像其他子模块一样从父模块继承,并且那些子模块也不能继承该外部父模块(因此不能选择使外部项目成为整个层次结构的父模块)。
有没有办法消除此类模块与层次结构其余部分之间的属性重复?
父级
pom.xml
<properties>
<foo>bar</foo>
</properties>
<modules>
<module>child</module>
<module>stepchild</module>
</modules>
子
pom.xml
<parent>
<groupId>my</groupId>
<artifactId>parent</artifactId>
<version>1.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<description>foo can be used: ${foo}</description>
继子
pom.xml
<parent>
<groupId>external</groupId>
<artifactId>parent</artifactId>
<version>35</version>
<relativePath/>
</parent>
<description>foo does not get substituted: ${foo}</description>
请您参考如下方法:
除了其他用户在上面的评论中发现的所有问题之外,您还可以使用可重用文件“my.properties”来设置属性,其中包含 foo=酒吧
并添加到maven:
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>properties-maven-plugin</artifactId>
<version>1.0-alpha-1</version>
<executions>
<execution>
<phase>initialize</phase>
<goals>
<goal>read-project-properties</goal>
</goals>
<configuration>
<files>
<file>${basedir}/../project-parent/my.properties</file>
</files>
</configuration>
</execution>
</executions>
</plugin>
</plugins>