私はApache Mavenを使用してビルドするとこの投稿を開始します。 Antや他のツールでも同様のことをすることができますが、これは私がmavenを使って行ったことです。
これを処理する最も良い方法は、プロジェクトのバージョンとサブバージョンリビジョンをビルド番号として使用することです。 Mavenからは、以下を含めることができます。これは$ {scm.revision}のようなSubversionリビジョン番号を与えます。
<build>
<plugins>
<plugin>
<artifactId>maven-scm-plugin</artifactId>
<executions>
<execution>
<id>getting-scm.revision</id>
<phase>validate</phase>
<goals>
<goal>update</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
これを済ませたら、これを実装バージョンとしてjarファイルマニフェストの一部として使用します。
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>2.1</version>
<configuration>
<archive>
<manifestEntries>
<Implementation-Version>${this.version}.${scm.revision}</Implementation-Version>
</manifestEntries>
</archive>
</configuration>
</plugin>
これについての素晴らしい事は、あなたが以下を使用してコードからこれをアクセスできることである。
Package p = getClass().getPackage();
String version = p.getImplementationVersion();
あなたの最後の番号が「1.0.13525」のような完全なビルド番号を与えることSubversionリビジョン。これを設定する方法の詳細については、blog postを参照してください。
良い答えです。ありがとう。 – toolkit
優秀! Antを使ってもできますか? (申し訳ありませんが、Javaの世界ではn00b) – Upendra
p.getImplementationVersion();私はそれを呼び出すしようとするたびにnullを返し続けます – jonney