1

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 とは思えません。

前もって感謝します、

4

0 に答える 0