21

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>

これはどのように行うことができますか?

4

6 に答える 6

32

独自のバージョン プロパティを使用する必要がない場合は、<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 プラグインが必要になる可能性があります。

于 2013-01-23T16:29:13.803 に答える
7

手始めに、手動で行うことができます。ビルドが Maven の規則によく従っている場合は、バージョン番号の管理を支援するために存在するいくつかの Maven プラグインのいずれかを利用できる可能性があります。

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

次に、リリースをカットするプロセス全体を自動化するmaven-release-pluginがあります。スナップショットをリリース バージョンに変更し、リリース ビルド後に次のスナップショットにロールします。このすべてのプロセス中に、poms の個別のバージョンがソース管理にコミットされます。

繰り返しになりますが、Maven コミュニティのより自動化された部分で成功を収める秘訣は、ビルドが Maven の方法で実行されているかどうかです。ハッキングされ、高度に調整された、型にはまらないビルドには、通常、リリース プラグインをうまく使用するための多くの障壁があります。

于 2013-01-23T16:14:34.347 に答える
2

ビルドヘルパープラグインは正規表現の置換をサポートし、必要に応じてバージョン番号を解析することもできます。 http://www.mojohaus.org/build-helper-maven-plugin/

于 2013-02-01T20:42:29.310 に答える
0

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

そして、リリースおよび開発バージョンを手動で提供するステップとして、2 つの文字列パラメーターを持つ jenkins でジョブを作成します。
developmentVersion
releaseVersion
「トップレベルの Maven ターゲットを呼び出す」ビルド ステップを追加して、リリースを実行します (例):

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

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

乾杯、
デスポット

于 2013-07-17T11:35:06.993 に答える