- Apache Maven 3.3.3
- Jenkins 2.7.3
- Maven Project Plugin 2.17 (Maven Integration plugin)
- M2 Release Plugin 0.14.0 (Maven Release Plug-in Plug-in)
下記のようにジョブを設定します。
- Maven release build
- On
- Release goals and options
-Dresume=false release:clean release:prepare release:perform -Pproduction
- DryRun goals and options
-Dresume=false -DdryRun=true release:prepare -Pproduction
リリース対象のジョブ画面で「Perform Maven Release」をクリックします。
「Release Version」と「 Development version」を確認し、
必要に応じて「Specify custom SCM tag」をチェックし任意のタグ名称を設定します。
「Schedule Maven Release Build」ボタンをクリックし、リリースします。
プロジェクトの root
ディレクトリに移動し、下記のコマンドを順に実行します。
対話形式でリリースバージョン、タグ名称、新しい開発バージョンを入力します。
マルチモジュール形式の場合は、モジュール毎にバージョンを入力します。
$ mvn release:clean
$ mvn release:prepare
$ mvn release:perform
release:clean
の実行前であれば、ロールバックすることが可能です。
ロールバックする場合は下記のコマンドを実行します。
$ mvn release:rollback
- ソースにコミットされていない変更がないことを確認
- SNAPSHOT への依存関係がないことを確認
- POM のバージョンを
x-SNAPSHOT
から新しいバージョンに変更(プロンプトが表示されます) - POM 内の SCM 情報をタグの最終的な宛先を含むように変換
- 変更された POM に対してプロジェクトテストを実行し、すべてが正常に動作していることを確認
- 変更された POM をコミット
- SCM のコードにバージョン名を付けてタグ付けします(プロンプトが表示されます)
- POM のバージョンを新しい値
y-SNAPSHOT
にバンプします(プロンプトが表示されます) - 変更された POM をコミット
- オプションのタグを使用した SCM URL からのチェックアウト
- 定義済みの Maven ゴールを実行してプロジェクトをリリース(デフォルトは
deploy site-deploy
)
- リリース・ディスクリプタを削除
- バックアップ POM ファイルを削除
- プロジェクトの POM はすべてローカルにリリース前の状態に戻され、SCM にも戻されます。これは、リリース中に作成されたバックアップファイルを使用して行われます。
- リリース用の SCM で作成されたブランチ/タグが削除されます。(注意:これはまだ実装されていないため、SCM からブランチ/タグを手動で削除する必要があります。)
dryRun
オプションを使用することでリハーサルが可能です。
リハーサルでは POM のコミットやタグ付けは実行されません。
$ mvn releas:prepare -DdryRun=true
$ mvn releas:clean