2012-09-12 7 views
6

TeamCityからMavenビルドを実行していて、build.vcs.numberを使用してSubversionリビジョンをマニフェストに書き出しています。任意のMavenのではVCSとしてSubversionで構築し、チームシティーは1234が構築されているブランチの最新のリビジョンであるMavenのコマンドラインにMavenリリース中にプロパティが失われました:perform

-Dbuild.vcs.number=1234 

を追加します。ポイント$ {build.vcs.number}がヌルになるで(チームシティーからも)実行:

はその後、私の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のリリースを実行するまで正常に動作していTeamCityビルドログで、このプロパティがコマンドラインで渡されたことがわかりましたが、

maven-release-pluginのドキュメントには、実行目標の途中でMavenがforkしたプロセスを実行していることが含まれています。

この特定のプロパティが確実にフォークされたプロセスに渡されるようにする方法はありますか?

答えて

4
-Darguments=-Dbuild.vcs.number=1234 

したがって、あなたが通過するかを指定する必要があり、それはきれいな再現可能なコマンドラインを持っていることを確認するためにリリースのフォークプロセスがあります。

理想的には、プロパティを通過させるためにPomにリリースプラグインを設定しますが、誰かがあなたのPom内のオーバーライドを無効にしていない限り、オーバーライドを使用できません。

注:空白を含む複数のプロパティまたはプロパティがある場合は、引用に注意してください。

+0

まさに私が探していたものです。 – RCross

関連する問題