POM ファイルのこの部分でビルド番号を生成します。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<version>1.2</version>
<configuration>
<buildNumberPropertyName>project.build.number</buildNumberPropertyName>
<timestampPropertyName>project.build.time</timestampPropertyName>
<format>{0,date,yyyyMMddHHmmss}</format>
<items>
<item>timestamp</item>
</items>
<doCheck>false</doCheck>
<doUpdate>false</doUpdate>
</configuration>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>create</goal>
</goals>
</execution>
</executions>
</plugin>
その後、finalName を次のように設定します。
<finalName>
${project.artifactId}-${project.version}.${project.build.number}
</finalName>
また、webstart-maven-plugin を使用してプロジェクトを webstart-app として生成しています。webstart-plugin は zip ファイルを生成します。そして、1 つの小さな詳細を除いて、すべて正常に動作します。
ビルド時に次の出力があります。
[buildnumber:create]
Storing buildNumber: 20130312133207 at timestamp: 1363091527664
Building jar: D:\projects\myProject\target\myProject-1.0.20130312133207.jar
Building jar: D:\projects\myProject\target\myProject-1.0.20130312133207-sources.jar
Building jar: D:\projects\myProject\target\myProject-1.0.20130312133207-javadoc.jar
Building zip: D:\projects\myProject\target\myProject-1.0.${project.build.number}.zip
${project.build.number} が zip ファイルで置き換えられないのはなぜですか? jarではなくzipだからでしょうか?なぜバージョンが置き換えられるのですか?POM に zip ファイルの buildNumber を置き換えるように指示するにはどうすればよいですか?
$project.build.number の代わりにデフォルトの $buildNumber を使用しようとしましたが、これも機能しません。
編集: 2 つのプラグインのさまざまなフェーズを既に試しましたが、これまでのところ組み合わせは機能しませんでした。
Edit2: 興味深い場合は、Webstart-Plugin-part がどのように見えるか、コードを次に示します。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>webstart-maven-plugin</artifactId>
<version>1.0-beta-3</version>
<executions>
<execution>
<phase>install</phase>
<goals>
<goal>jnlp</goal>
</goals>
</execution>
</executions>
<configuration>
<!-- JNLP generation -->
<jnlp>
<!-- default values -->
<inputTemplateResourcePath>${project.basedir}</inputTemplateResourcePath>
<inputTemplate>src/main/jnlp/app.vm</inputTemplate> <!-- relative to inputTemplateResourcePath -->
<outputFile>app.jnlp</outputFile> <!-- defaults to launch.jnlp -->
<!-- used to automatically identify the jar containing the main class. -->
<!-- this is perhaps going to change -->
<mainClass>com.mycompany.myproject.App</mainClass>
</jnlp>
<sign>
<keystore>${basedir}/keystore</keystore>
<keypass>password</keypass> <!-- we need to override passwords easily from the command line. ${keypass} -->
<storepass>password</storepass> <!-- ${storepass} -->
<!--storetype>fillme</storetype-->
<alias>MyProjectWebstart</alias>
<!--validity>fillme</validity-->
<!-- only required for generating the keystore -->
<dnameCn>MyProjectWebstart</dnameCn>
<dnameOu>MyName</dnameOu>
<dnameO>MyCompany</dnameO>
<dnameL>MyTown</dnameL>
<dnameSt>MyState</dnameSt>
<dnameC>MyCountry</dnameC>
<verify>true</verify> <!-- verify that the signing operation succeeded -->
<!-- KEYSTORE MANAGEMENT -->
<keystoreConfig>
<delete>true</delete> <!-- delete the keystore -->
<gen>true</gen> <!-- optional shortcut to generate the store. -->
</keystoreConfig>
</sign>
</configuration>
</plugin>
そこでの例のコードを使用しました: Webstart Maven Plugin サンプル アプリケーションを探しています。