親プロジェクト「parent」があり、次のような 3 つのモジュールがあります。
<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>
3 つのモジュールがチェーンのように相互に依存しています。
A<--B<--C
親の下でビルドを実行すると、最初に A-1.0-SNAPSHOT.jar が生成され、次に B-1.0-SNAPSHOT.jar、最後に C-1.0-SNAPSHOT.jar が生成されます。
次に、問題は、毎日ナイトリー ビルドを生成する別の Maven プロファイルがあることです。
<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 バージョン 1.0-SNAPSHOT との依存関係として A があります)。とにかく、Bの下のpom.xmlには次のようなものがあります:
if(normal build) {
dependency A version is: 1.0-SNAPSHOT
}
if(nightly build) {
dependency A version is: ${buildNumber}
}