buildnumber:hgchangesetプラグインを使用して changeSet および changeSetDate プロパティを生成するマルチモジュール プロジェクトがあり、次のように各モジュールのマニフェストに出力されます。
pom.xml (親):
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<version>1.0</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>hgchangeset</goal>
</goals>
</execution>
</executions>
</plugin>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifestEntries>
<ProjectVestion>${project.version}</ProjectVestion>
<ChangeSet>${changeSet}</ChangeSet>
<ChangeSetDate>${changeSetDate}</ChangeSetDate>
</manifestEntries>
</archive>
</configuration>
</plugin>
少し実験した後、各モジュールに対して buildnumber:hgchangeset を実行すると、ビルド時間全体にかなりの時間がかかることがわかりました。おそらく、ローカル リポジトリの変更セット ID を取得する必要があるたびに hg.exe をフォークしているためです。
次に、ビルド番号プラグインで継承されたプロパティを false に設定して、親に対して一度だけ実行することをお勧めします。残念ながら、これを行うと、changeSet および changeSetDate プロパティが子モジュールから「見えない」ようになります。
私の質問は、buildnumber:hgchangeset が 1 回だけ実行され、設定されたプロパティが子モジュールに表示されるように設定することは可能ですか?
別の方法として、プロパティ ファイルに書き出して、各モジュールに読み込ませることもできると思いますが、これは慣用的な Maven とは思えません。
前もって感謝します、