2013-07-19 6 views
9

を更新Mavenは、私は私のpom.xmlが含まれている。すなわち、与えられた値にポンポンプロパティを更新する方法を探していポンポンプロパティに

mvn some_plugin:some_goal -Dabc.def=XYZ 

と最終的には私ののpom.xmlはべき

<properties> 
    <abc.def>XYZ</abc.def> 
<properties> 

私はMavenのリリース - プラグインのバージョン&-のmaven-pluginの約読んでいたように見えますが、私は、n行います一致する目標があるかどうかを確認してください。

お返事ありがとうございます。

+0

は、依存関係のバージョンのこれらの特性はありますか? – khmarbaise

+0

はい、そうです。私がする必要があるのは、pom.xmlのプロパティを更新し、Jenkinsがmavenコマンドを呼び出してSVNにコミットすることだけです。 –

+3

ゴール[update-properties](http://mojo.codehaus.org/versions-maven-plugin/update-properties-mojo.html)のバージョン-maven-pluginより適切です。 – khmarbaise

答えて

7

MVNバージョン:更新特性-Dproperties = [XYZ] -DincludePropertiesの= {abc.def}

here詳しく見ます。それは(update-propertiesのドキュメントがこれを言及していないいくつかの理由であるためset-property目標のドキュメントへのリンク)sanity checksを行っているため

+0

はこの構文をもう少し詳しく説明できますか? – domi

+0

私はリンクを使って答えを更新しました... – OhadR

+0

私はその文書を知っていますが、実際にそれを説明していません。 「-Dproperties」は実際にはtypeプロパティです(http://mojo.codehaus.org/versions-maven-plugin/update-properties-mojo.html#propertiesを参照)。したがって、私はあなたが何をしようとしているのか分かりません「-Dproperties = [XYZ]」で行います。あなたの例は私のために働いていません。 – domi

1

上記の@khmarbaiseに同意すると、versions-maven-pluginはこれを行うだけです。あるいは、バージョンを管理するのにもっと重いアプローチが必要な場合はMaven Release Pluginに移動できます。 JenkinsのBUILD_NUMBER環境変数を使用してpom.xmlファイルをsedしました。これはより速く、より汚いアプローチです。

+0

Conan、バージョン - maven-pluginに関する@khmarbaiseへの私の答えを確認してください。しかし、私はmaven-release-pluginを試して、それを目標にしていきます。 –

+1

Maven Release Pluginはあなたのバージョン管理を十分にコントロールしますが、警告メッセージが表示されます。もしリリースプラグインが望んでいるだけのことをしなければ、それはあなたを噛ませるでしょう! – Conan

6

私は解決策のいくつかのケースを見つけました。私はどこのmaven-代用-プラグインを使用しています: 私の性質のpom.xml内の定義:

 <properties> 
     <abc.def>aaaaa</abc.def> 
    <properties> 

を私のプラグインの設定:

   <plugin> 
      <groupId>com.google.code.maven-replacer-plugin</groupId> 
      <artifactId>replacer</artifactId> 
      <version>1.5.2</version> 
      <configuration> 
       <file>pom.xml</file> 
       <replacements> 
        <replacement> 
         <token>${abc.def}</token> 
         <value>${replacer.abc.def}</value> 
        </replacement>   
       </replacements> 
      </configuration> 
     </plugin> 

、最終的に私のMavenの呼び出し:

mvn replacer:replace -Dreplacer.abc.def=XYZ 

それは私のために働くが、@ khmarbaiseと@Conanが言ったように、maven-relase-pluginやバージョン-maven-pluginを使ってそれを達成するためのより良い方法があることは分かっている。

1

受け入れ答えは、任意の値では動作しません。文書化されているように - - ので、プロパティの使用set-propertyにいくつかの任意の値を設定するには

それは健全性チェックをスキップ:

mvn versions:set-property -Dproperty=your.property -DnewVersion=some_value 
関連する問題