2010-11-30 11 views
4

実行時にアプリケーションのタイトルバーに表示される(コンパイル時に生成された)ビルドIDを記録するための簡単な提案はありますか?JavaアプリケーションでビルドIDを取得する

Eclipse内からビルドすると、IDが必要なだけで、タイトルに渡すことができます。

+0

使用しているツールを作成していますか? –

+1

私はちょうどEclipseの中でそれを構築しています(AndroidのADTを使用)。だから私は現在(私が知っている)生成されているビルドIDを持っていない。私は最初に生成されたものを取得する必要があります(Mavenはそれを行いますか?)そして、実行時にアプリケーションからアクセスします。 –

+0

この投稿は素晴らしいエンドツーエンドの説明を持っています: http://rterp.wordpress.com/2012/03/16/stamping-version-number-and-build-time-in-properties-file-with- maven/also useful: http://stackoverflow.com/questions/2469922/generate-a-version-java-file-in-maven –

答えて

3

Antを使用している場合、現在のタイムスタンプを含むファイルを生成し、これをjar出力に含めるように、簡単に "jar"または "package"ターゲットを設定できます。

Mavenを使用している場合、the antrun pluginを使用してAntに落とすなど、いくつかの方法で同様のことを実現できます。

+0

こんにちは、少し遅くても、それを試してみることができます:$ {maven。 build.timestamp}投稿:Nicolas Toublanc http://docs.codehaus.org/display/MAVENUSER/MavenPropertiesGuide?focusedCommentId=136675856#comment-136675856 – ATorras

0

Eclipse内で完全にビルドしている場合は、必要な情報を含むソースフォルダにリソースを生成するビルドアクションを作成する必要があります。プロパティファイルはうまく機能し、バイナリ出力に伝播します。実行時に読んでから、それを表示する必要があります。

2

ビルドにタイムスタンプを使用する場合は、jarまたはクラスの変更日またはMANIFESTファイルから取得できます。

Mavenは、MANIFESTファイルにjarのモジュールバージョン番号を入力します。これを読んで、使用しているすべてのMavenモジュールのバージョンを取得できます。

「一意のID」のタイムスタンプ部分を作成すると、すべてのビルドが異なるIDを持つことが保証されます。

4

ビルド番号をsvnから指定する場合は、(特にビルド番号はコンフィグレーションで生成できますが)buildnumber-maven-pluginを参照してください。ビルドIDを参照するために、あなたのポンポンの後半で$ {BuildNumberを}を使用、その後

 <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>buildnumber-maven-plugin</artifactId> 
      <version>1.0-beta-3</version> 
      <executions> 
       <execution> 
        <phase>validate</phase> 
        <goals> 
         <goal>create</goal> 
        </goals> 
       </execution> 
      </executions> 
      <configuration> 
       <doCheck>true</doCheck> 
       <doUpdate>true</doUpdate> 
      </configuration> 
     </plugin> 

単にあなたのpom.xmlファイルに次のようなスニペットを追加します。私はそれを使用して、マニフェストにその番号を書くのと同じように、maven-war-pluginを使用します。

   <archive> 
        <manifest> 
         <addDefaultImplementationEntries>true</addDefaultImplementationEntries> 
        </manifest> 
        <manifestEntries> 
         <Implementation-Build>${buildNumber}</Implementation-Build> 
        </manifestEntries> 
       </archive> 
関連する問題