Antの代わりにMaven2を使用するように大規模なビルドシステムをアップグレードしていますが、2つの関連する要件があります。
タイムスタンプされたアーティファクトを生成する必要があるため、ビルドする代わりにpackageフェーズ(またはどこでも)の一部
project-1.0-SNAPSHOT.jar
私たちは構築する必要があります
project-1.0-20090803125803.jar
(どこ 20090803125803
は、jarが作成されたときのYYYYMMDDHHMMSS
タイムスタンプにすぎません)。
唯一の実際の要件は、タイムスタンプが生成されたファイルのファイル名の一部であることです。
同じタイムスタンプを、生成されたjar内のversion.propertiesファイル内に含める必要があります。
この情報は、実行時に生成されるpom.propertiesに含まれます。例:mvn package
がコメントアウトされています:
#Generated by Maven
#Mon Aug 03 12:57:17 PDT 2009
どこから始めるかについてのアイデアは役に立ちます!ありがとう!
この投稿(特に以下の部分)も、この問題に対して非常に有用で実用的です。
Mavenを使用したプロパティファイルでのバージョン番号とビルド時間のスタンプ
ポンポンはこのようになります
...
<properties>
....
<!-- Timestamp of build -->
<timestamp>${maven.build.timestamp}</timestamp>
<maven.build.timestamp.format>yyyy_MM_dd_HH_mm</maven.build.timestamp.format>
</properties>
...
<build>
<finalName>${project.artifactId}-${project.version}-${timestamp}</finalName>
<plugins>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
....
</plugin>
</plugins>
</build>
....
パッケージ名はMyProject-1.0. 0-2015_03_02_13_46.war
SNAPSHOTプロジェクトがデプロイされると、 deploy plugin でオーバーライドしない限り、デフォルトでタイムスタンプが使用されます。一意のタイムスタンプを取得していない場合は、おそらくMavenリポジトリの構成に依存しています。ただし、他の回答にあるように、リリースにはタイムスタンプまたはビルド番号プラグインを使用してください。
より新しい答えが必要です:)これは現在ビルドされています: http://maven.Apache.org/guides/introduction/introduction-to-the-pom.html#Available_Variables
使用する ${maven.build.timestamp}