2016-04-04 16 views
0

私は2つのプロジェクトを持っています.1つはwebapp、もう1つはjarです。両方ともmavenのプロジェクトで、webappはjarを依存関係として使います。私は最近両方でbuildnumber-maven-pluginを実装しました。したがって、それぞれがscmリビジョンを参照する$ {buildNumber}プロパティを持っています。Maven Dependencyからプロパティを取得

私は両方のバージョンを表示し、リビジョン番号とバージョン番号を表示するUIを持っています。メインアプリケーションからの依存関係のポームから$ {buildNumber}プロパティを取得するにはどうすればよいですか?

答えて

0

私はmavenを使ってプロパティファイルに書き込みます。このファイルは、サーブレットなどで読み取られます。

私はそれをテストしていませんが、それはヒントです。 まず、私の戦争では、プロパティファイル。 このファイルに含まれています、

version = ${project.version} //the value comes from maven 

Secondely、 そのプロパティを読み取り、第三正面

と通信することができるサーブレットまたは任意のサーバー側(例えばRESTリソース)、 はのPOMを変更しますそのような戦争:

<build> 
     <resources> 
      <resource> 
       <directory>src/main/resources</directory> 
       <filtering>true</filtering> 
       <includes> 
        <include>**/*.properties</include> 
       </includes> 
      </resource> 
     </resources> 
<build> 

・ホープ、このヘルプ

+0

これはすでに依存バージョンになっていますが、リビジョン# – nmb1106

+0

が私の悪いので、この記事の最後になる可能性がありますhttp://blog.codehangover.com/track-every-build- number-with-maven/ – vincent

0

述べたように リビジョン番号は、あなたのpomの$ {buildNumber}を使って入手できます。

<finalName>$\{project.artifactId}-r$\{buildNumber}</finalName> 

アプリに利用可能なリソースにそれを伝播するには、vincentの回答から指示を使用できます。

+0

同じことは、現在のアプリケーションのビルド番号を取得しますが、依存関係はどうですか? – nmb1106

+0

WAR内の追加JARのbuildNumberを知りたい場合は、jar1_version.properties、jar2_version.propertiesの各JAR内にbuildNumberを持つプロパティファイルを置くことができます。主要な戦争よりもクラスパスからロードできます: 'String props [] = new String [] {" jar1_ver.props "、" jar2_ver.props "}; (文字列p:Arrays.asList(小道具)){ プロパティp1 =新しいプロパティ(); p1.load(this.getClass()。getResourceAsStream(p)); p1.get( "version"); } ' –

関連する問題