TeamCityからmavenビルドを実行し、build.vcs.numberを使用してSubversionリビジョンをマニフェストに書き込みます。VCSとしてSubversionを使用するMavenビルドでは、TeamCityは次のように追加します。
-Dbuild.vcs.number=1234
mavenコマンドラインへ。1234は構築中のブランチの最新リビジョンです。
次に、pom.xmlに次のようになります。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
</manifest>
<manifestEntries>
<build>${build.vcs.number}</build>
</manifestEntries>
</archive>
</configuration>
</plugin>
これは、Maven release:perform(これもTeamCityから)を実行するまではすべて正常に機能します。実行すると、TeamCityビルドログでこのプロパティがコマンドで渡されたことがわかりますが、${build.vcs.number}はnullになります。ライン。
maven-release-pluginのドキュメントは、Mavenが実行目標のある時点でフォークされたプロセスを実行することを示唆しています-これが問題がある理由ですか?
この特定のプロパティがそのフォークされたプロセスに確実に渡されるようにする方法はありますか?