2013-01-23 8 views
15

私はMaven pom.xmlを持っています。私はプロジェクトをビルドし、Jenkinsと共にプロジェクトを展開します。Maven:pom.xmlのバージョンプロパティを変更します

しかし、ビルド「リリースバージョン」我々は例えば

に私のバージョンを設定する必要がある前と後:私はこの

ように設定必要 私はのpom.xmlにリリース前に

<properties> 
    <version-own>0.0.21-SNAPSHOT</version-own> 
</properties> 

を持っています

<properties> 
    <version-own>0.0.25</version-own> 
</properties> 

リリース後このように設定する必要があります

<properties> 
    <version-own>0.0.27-SNAPSHOT</version-own> 
</properties> 

どうすればいいですか?

+3

まず、0.0.21-SNAPSHOTは0.0.21になります。その後、リリース後、その番号を次のリリースにロールし、スナップショット(0.0.22-SNAPSHOT)を追加して、現在開発中であることを示します。注:あなたは数字をスキップしているようですが、これは問題ありませんが、この例ではありませんでした。 – chad

答えて

6

初心者は手作業で行うことができます。あなたのビルドがmavenの慣習に従っていれば、おそらくバージョン番号の管理に役立ついくつかのmavenプラグインの1つを活用することができます。

maven-versions-pluginは、バージョン番号の手動変更を自動化するのに役立ちます。リリースを行う前にあなたのお金を調整するのに役立つ素晴らしいCLIコマンドがあります。

次に、リリースを切断するプロセス全体を自動化するmaven-release-pluginがあります。スナップショットはリリースバージョンに変更され、リリースビルド後に次のスナップショットにロールバックされます。このプロセスのすべての間、それは、ソースコントロールへの個別のバージョンのポムをコミットします。

また、Mavenコミュニティのより自動化されたビットで成功を見る秘訣は、ビルドがMavenのやり方をしているかどうかです。ハッキングされ、高度に調整された非従来のビルドでは、通常、リリースプラグインをうまく使用するために多くの障壁があります。

+0

あなたは私を理解できませんでした。変更する必要があります

 0.0.21-SNAPSHOT    com.test-release features-test-release ${version-own} 
user2004266

25

独自のバージョンプロパティを使用する必要がない場合は、お使いの<project><version>0.0.21-SNAPSHOT</version></project>要素を操作すれば、以下の通りで考えてみます。

mvn versions:set versions:commit -DnewVersion="0.0.25" 

あなたのポンポンを変更し、お好みに合わせてバージョンを調整します。あなたはおそらく、このSCMプラグインのSCMのために、ソースコード管理リポジトリに、この変更をコミットしたいと思う:チェックインの目標は、正常に動作します(あなたはこれを自動化することにしたいと仮定します):

mvn scm:checkin -Dincludes=pom.xml -Dmessage="Setting version, preping for release." 

次に、あなたがあなたのを実行することができますリリース(私はmaven-release-pluginをお勧めします)、その後あなたの新しいバージョンを設定し、上記のようにコミットすることができます。

versions pluginはあなたの友人です。上記のスクリプトには、いくつかのパラメータ化されたビルド、または好ましくはジェンキン用のgroovyプラグインが必要になります。これにより、ビルド変数を取得することができます。

+0

変更が必要 0.0.21-SNAPSHOT <依存性> com.test放出 機能テスト放出 $ {バージョン自身} user2004266

+1

ここで悪魔の主唱者を演奏する:「 0.0.21-SNAPSHOT」を単に「 0.0.21-S」 NAPSHOT '?バージョンが必要な場合は、 '$ {project.version}' **でバージョンを参照することができます。また、上記のバージョンI、バージョン、リリース、およびscmのプラグインを使用することができます。 – Anew

+0

version-ownは依存バージョン – user2004266

0

このcommentを見ると、このバージョンを使用して依存関係を提供していると記述されています。 maven-release-pluginは、あなたのバージョン管理に役立ちます。したがって、pom.xmlにそのプラグインを提供してください。

し、手動でのリリースと開発版を提供するステップのために、2列パラメータを持っていますジェンキンスでジョブを作成します。
developmentVersion
releaseVersion
が実行するステップを構築し、「トップレベルのMavenの目標を起動します」追加します

clean release:clean release:prepare release:perform -DdevelopmentVersion=${developmentVersion} -DreleaseVersion=${releaseVersion} 

ジョブをビルドするときに、developmentVersionとreleaseVersionの両方を挿入するように求められます。

乾杯、
専制君主

5

やすいものにするための一つの方法があります。カット&ペーストについて

:1つのコマンドであなたが望むどの部分を変更することができます。明確にするため

mvn build-helper:parse-version versions:set -DbuildNumber=555 '-DnewVersion=${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}-${buildNumber}' 

を:

mvn build-helper:parse-version versions:set -DbuildNumber=555 
    '-DnewVersion= 
        ${parsedVersion.majorVersion} 
       .${parsedVersion.minorVersion} 
       .${parsedVersion.incrementalVersion} 
       -${buildNumber}' 

これは、と一度にバージョンを更新する方法を簡潔例です。値を設定する

1

のようなものがあります。parsedVersion.nextIncrementalVersion

mvn build-helper:parse-version versions:set -DnewVersion=\${parsedVersion.majorVersion}.\${parsedVersion.minorVersion}.\${parsedVersion.nextIncrementalVersion} versions:commit

関連する問題