この投稿は、ApacheMavenを使用してビルドすることから始めます。Antや別のツールを使用して同様のことを行うこともできますが、これは私がMavenを使用して行ったことです。
これを処理するために私が見つけた最善の方法は、プロジェクトのバージョンとSubversionリビジョンをビルド番号として使用することです。Mavenから、以下を含めることができます。これにより、Subversionリビジョン番号が${scm.revision}として提供されます。
<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」のような完全なビルド番号が得られます。最後の番号はサブバージョンのリビジョンです。これを設定する方法の詳細については、この問題についてしばらく前に行ったブログ投稿全体を確認してください。