2012-12-04 21 views
16

いくつかの依存関係のバージョン番号が、pomファイルの設定で指定されたproject versionプロパティに依存するpomファイルがあります。これをコマンドラインで上書きできますか?もしそうなら、どうですか?mavenプロパティを上書きするコマンドラインプロパティを取得する方法

我々は現在、Mavenのために私たちのプロジェクトを移行しているが、我々はまだそこにすべての方法じゃない:

ここで長い話です。まだMavenでビルドされていない複数のモジュールがあり、したがってプロジェクトに依存しています(antを介してjarファイルに組み込まれています)。リリース時には、これらのjarファイルをすべてビルドし、親プロジェクトと同じバージョン番号が含まれるようにします。リリースの場合、2つのステップが実行されます(メイヴァンを使用してすべてを取得できるまで)

  1. jarは適切なリリースバージョン(12.12.4.0)でantでビルドされています。
  2. mavenリリースプラグインは、プロジェクトをArtifactリポジトリにデプロイするために使用されます。第二段階のコマンドライン引数で

は、リリースを指定するために使用されています

mvn release:prepare -DreleaseVersion=12.12.4.0 -DdevelopmentVersion=12.12.4.1-SNAPSHOT -Dtag=iv-12.12.4.0 

私は指定されたバージョンで更新されるようにポンポンファイルをしたいと思います。ただし、このコマンドを実行すると、pomファイル(12.12.4.0-SNAPSHOT)内のバージョンがまだ使用されています。これは、 "スナップショットの依存関係とプラグインの確認"の手順に失敗し、まだ12.12.4.0-SNAPSHOTバージョンが使用されているjarを解決する必要があります。

これは、コマンドラインで指定されたバージョンにバージョンが解決されるように、これをオーバーライドする方法の元の質問に私を導いてくれました。 これを過ぎてしまう可能性があるその他の質問は次のとおりです。 このチェックの前にmavenリリースプラグインがpomファイルを更新する方法を教えてください。 スナップショットチェックをスキップする方法(望ましくない)

私は上書きすることができるpomファイル内にプロパティを作成できますが、pomファイル内の2つの場所でバージョン番号を維持する必要があります。

思考?

答えて

40

入れパラメータは、例えば直接コマンドラインからPOMする:

mvn clean install -Dtestng.version=6.3.1

例:あなたが実行している場合、それは通常、TestNGのバージョン6.4が

 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
     <modelVersion>4.0.0</modelVersion> 
     <groupId>com.test</groupId> 
     <artifactId>test</artifactId> 
     <version>1.0.0</version> 
     <name>test</name> 
     <properties> 
       <testng.version>6.4</testng.version> 
     </properties> 

     <dependencies> 
       <dependency> 
         <groupId>org.testng</groupId> 
         <artifactId>testng</artifactId> 
         <version>${testng.version}</version> 
         <scope>test</scope> 
       </dependency> 
     </dependencies> 
</project> 

を使用されます。しかし、あなたがそれを実行する場合:mvn clean install -Dtestng.version=6.3.1 testngバージョン6.3.1が使用されます。

Setting Maven params in Jenkins

+1

ワウ...私は本当に単純なことを見落としました。あなたは私がコマンドラインで変更したいバージョンのプロパティを設定しようとしなかったことに気付いた。出来た!だから私は単純に-Dversionまたは-Dproject.version = 12.12.4.0を追加しました。 – Noremac

+1

私はスイス人です。私はHelveticaを嫌いです。私はちょうど "put parameters to poRn"と読む... 必要に応じてプロファイルのプロパティを設定し、それらのプロファイルを組み合わせることもできます。たとえば、開発用サーバーではなく本番環境でWebアプリケーションを展開するためのプロファイルがあります。このプロファイルは、TomcatインスタンスのURL、ユーザー名、およびパスワードを結合します。 – tiktak

+1

複数のパラメータを無効にするには、複数の-Dフラグを使用します。 –

関連する問題