我有父项目“父”,它有三个模块,如:
<groupId>com.dummy.bla.bla</groupId>
<artifactId>parent</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
<module>A</module>
<module>B</module>
<module>C</module>
</modules>
三个模块像链条一样相互依赖:
A<--B<--C
当我在 parent 下运行构建时,我将首先生成 A-1.0-SNAPSHOT.jar,然后是 B-1.0-SNAPSHOT.jar,最后是 C-1.0-SNAPSHOT.jar。
然后问题是,我有另一个 Maven 配置文件来每天生成夜间构建。在我的父 pom.xml 中,我有:
<build>
<profile>
<id>nightlybuild</id>
<finalName>${artifcateId}-${buildNumber}</finalName>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<executions>
<execution>
<phase>generate-resources</phase>
<goals>
<goal>create</goal>
</goals>
</execution>
</executions>
<configuration>
<doCheck>false</doCheck>
<doUpdate>false</doUpdate>
<format>{0,date,yyyy-MM-dd_HH-mm}_{1}</format>
<items>
<item>timestamp</item>
<item>${user.name}</item>
</items>
</configuration>
</plugin>
</build>
然后我在使用配置文件“nighlybuild”构建所有模块时遇到问题,因为它首先生成 A-${buildNumber}.jar,然后在构建 B 时,它无法查找 A-1.0-SNAPSHOT.jar(因为在B/pom.xml 我有 A 作为版本 1.0-SNAPSHOT 的依赖项)。无论如何,B下的pom.xml可以有类似的东西:
if(normal build) {
dependency A version is: 1.0-SNAPSHOT
}
if(nightly build) {
dependency A version is: ${buildNumber}
}