実行時に私の戦争のmaven deployプラグインによって生成された完全なアーティファクトバージョン/ビルド番号を実行時に取得する方法はありますか?
Maven プロセスが値を含むプロパティ ファイルを生成してパッケージ化していれば問題ありません。
私のプロジェクトでは、デプロイごとに一意の (タイムスタンプ付きの) アーティファクト バージョンが生成されることに注意してください。
実行時に私の戦争のmaven deployプラグインによって生成された完全なアーティファクトバージョン/ビルド番号を実行時に取得する方法はありますか?
Maven プロセスが値を含むプロパティ ファイルを生成してパッケージ化していれば問題ありません。
私のプロジェクトでは、デプロイごとに一意の (タイムスタンプ付きの) アーティファクト バージョンが生成されることに注意してください。
これを試して:
<configuration>
<archive>
<manifest>
<addDefaultImplementationEntries/>
<addDefaultSpecificationEntries/>
</manifest>
</archive>
</configuration>
これにより、戦争を構築する pom からの Maven の詳細が MANIFEST.MF ファイルに追加され、実行時に読み取ることができます。
私がときどき使用するもう 1 つの方法は、プロパティ ファイルのフィルタリングを使用し、そこに pom 値をドロップすることです。これは、プロパティ ファイル/構成の読み込みメカニズムが既にある場合に便利です。
次に、pom と同じ値を使用するデプロイが完了したら、問題ありません。
-クリス
maven-jar-pluginを使用してマニフェスト ファイルにパッケージ化できます。このプラグインは、必要に応じてアプリケーションから読み取ることができます。
pom.xml のプロパティをマニフェスト ファイルに書き込む基本的な構成を次に示します。
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.4</version> <configuration> <archive> <manifest> <addClasspath>false</addClasspath> </manifest> <manifestEntries> <Implementation-Vendor>Vendor Name</Implementation-Vendor> <Implementation-Version>${revision}</Implementation-Version> <Build-Timestamp>${timestamp}</Build-Timestamp> <Build-Number>${release}_${revision}</Build-Number> </manifestEntries> </archive> </configuration> <executions> <!-- your jar executions here --> </executions> </plugin>
プロパティ値は pom.xml で次のように定義されます。
<properties>
<timestamp>${maven.build.timestamp}</timestamp>
<release>DevelopmentBuild</release>
<revision>Some Value</revision>
<properties>
編集:
これは、maven-war-pluginを使用して行うこともできます。WAR マニフェストのカスタマイズの詳細については、こちら を参照してください。