war のマニフェストにブランチとビルドの情報を追加しようとしていますが、キーがマニフェストに表示されますが、値は null です。buildnumber-maven-plugin から取得した値です。このプラグインを実行すると、ログに値が表示されます。また、maven-antrun-plugin タスクを追加して、war プラグインに渡す値をエコーし、ログにも表示します。そのため、マニフェストに書き込むときに null である理由を見つけるのに苦労しています。以下にいくつかの例を示します。
ここに私のビルド番号プラグインがあります:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<version>1.4</version>
<configuration>
<doCheck>false</doCheck>
<doUpdate>false</doUpdate>
</configuration>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>create</goal>
</goals>
</execution>
</executions>
</plugin>
このプラグインが実行されると、ログに表示されます..
[INFO] --- buildnumber-maven-plugin:1.4:create (default) @ my-project ---
[INFO] Executing: cmd.exe /X /C "git rev-parse --verify HEAD"
[INFO] Working directory: C:\workspace\my-project
[INFO] Storing buildNumber: 09w3e456df44cd81a5d20f4502f957ae80d52eb2 at timestamp: 1455818030872
[INFO] Storing buildScmBranch: master
次に、これらの値も出力する Ant タスクを追加しました。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<phase>generate-resources</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<echo>buildNumber: ${buildNumber}</echo>
<echo>scmBranch: ${scmBranch}</echo>
</tasks>
</configuration>
</execution>
</executions>
</plugin>
そして、私が見るログで...
[INFO] --- maven-antrun-plugin:1.8:run (default) @ my-project ---
[WARNING] Parameter tasks is deprecated, use target instead
[INFO] Executing tasks
main:
[echo] buildNumber: 09w3e456df44cd81a5d20f4502f957ae80d52eb2
[echo] scmBranch: master
最後に、war プラグイン/アーカイバーを使用すると、ここで問題が発生します...ここにプラグインがあります..
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
<archive>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
</manifest>
<manifestEntries>
<sha>${buildNumber}</sha>
<branch>${scmBranch}</branch>
</manifestEntries>
</archive>
</configuration>
</plugin>
そして、ブランチとシャが空白になっている結果のマニフェストを次に示します..
Manifest-Version: 1.0
Implementation-Vendor: My Company
sha:
Implementation-Title: My Project
Implementation-Version: 0.0.1-SNAPSHOT
Implementation-Vendor-Id: com.myproject
Build-Jdk: 1.7.0_79
Built-By: me
branch:
Created-By: Maven Integration for Eclipse
Implementation-URL: [purposely omitted]
branchとshaは両方とも空白ですが、上記のログではそれらの値が明らかに利用可能です。これらの値を一掃する何かがありますか、またはこれらの値を Maven war プラグイン内のアーカイバーにバブルアップするためにさらに必要なものがありますか?