Maven pom.xmlがあり、プロジェクトをビルドし、Jenkinsでプロジェクトをリリースします。
ただし、「リリースバージョン」をビルドする前後に、バージョンを設定する必要があります。
例: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>
これをどのように行うことができますか?
独自のバージョンプロパティを使用する必要がない場合は、<project><version>0.0.21-SNAPSHOT</version></project>
要素:
mvn versions:set versions:commit -DnewVersion="0.0.25"
それはあなたのPOMを修正し、あなたの好みに合わせてバージョンを調整します。この変更をソースコード管理リポジトリにコミットすることをお勧めします。このため、scmプラグインのscm:checkinの目標はうまく機能します(これを自動化する場合)。
mvn scm:checkin -Dincludes=pom.xml -Dmessage="Setting version, preping for release."
その後、リリースを実行できます( maven-release-plugin をお勧めします)。その後、上記のように新しいバージョンを設定してコミットできます。
バージョンプラグイン はあなたの友達です。上記のスクリプトには、パラメータ化されたビルド、またはできればMaven固有のビルド変数を取得できるjenkinsのgroovyプラグインが含まれる可能性があります。
これを簡単に行う方法が1つあります。 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}'
これはビルド値を使用して一度にバージョンを更新する方法の簡潔な例です
手始めに、あなたは手でそれを行うことができます。ビルドがMavenの規則に従っている場合、バージョン番号の管理を支援するために存在するいくつかのMavenプラグインのいずれかを活用できます。
maven-versions-plugin は、バージョン番号の手動変更を自動化するのに役立ちます。リリースを行う前にpomsを調整するのに役立つNice CLIコマンドがあります。
次に、リリースをカットするプロセス全体を自動化する maven-release-plugin があります。スナップショットをリリースバージョンに変更し、リリースビルド後に次のスナップショットにロールバックします。このすべてのプロセス中に、個別バージョンのPOMをソース管理にコミットします。
繰り返しになりますが、Mavenコミュニティのより自動化された部分で成功を収める秘secretは、ビルドがMaven方式で物事を行っているかどうかです。ハッキングされ、高度に調整された、型にはまらないビルドには、通常、リリースプラグインを正常に使用するための多くの障壁があります。
ビルドヘルパープラグインは正規表現の置換をサポートし、必要に応じてバージョン番号を解析することもできます。 http://www.mojohaus.org/build-helper-maven-plugin/
parsedVersion.nextIncrementalVersion
のようなものがあります
mvn build-helper:parse-version versions:set -DnewVersion=\${parsedVersion.majorVersion}.\${parsedVersion.minorVersion}.\${parsedVersion.nextIncrementalVersion} versions:commit
これを見て コメント このバージョンを使用して依存関係を提供していることを説明しています。 maven-release-plugin は、バージョンの管理に役立ちます。そのため、pom.xmlでそのプラグインを提供します。
また、リリースと開発バージョンを手動で提供するステップでは、2つの文字列パラメーターを持つジョブをjenkinsで作成します。
developmentVersion
releaseVersion
「トップレベルのMavenターゲットを呼び出す」ビルドステップを追加して、リリースを実行します(例)。
clean release:clean release:prepare release:perform -DdevelopmentVersion=${developmentVersion} -DreleaseVersion=${releaseVersion}
ジョブをビルドするとき、developmentVersionとreleaseVersionの両方を挿入するよう求められます。
乾杯、
Despot