Skip to content

Instantly share code, notes, and snippets.

@minazou67
Last active November 11, 2021 10:42
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save minazou67/a450f7f057a2fd3ad195557d0cec4a58 to your computer and use it in GitHub Desktop.
Save minazou67/a450f7f057a2fd3ad195557d0cec4a58 to your computer and use it in GitHub Desktop.
How to use Maven Release Plugin

How to use Maven Release Plugin

Environment

  • 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)

How to use in Jenkins

下記のようにジョブを設定します。

  • 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

Release

リリース対象のジョブ画面で「Perform Maven Release」をクリックします。
「Release Version」と「 Development version」を確認し、 必要に応じて「Specify custom SCM tag」をチェックし任意のタグ名称を設定します。
「Schedule Maven Release Build」ボタンをクリックし、リリースします。

How to use on the command line

プロジェクトの root ディレクトリに移動し、下記のコマンドを順に実行します。
対話形式でリリースバージョン、タグ名称、新しい開発バージョンを入力します。
マルチモジュール形式の場合は、モジュール毎にバージョンを入力します。

$ mvn release:clean
$ mvn release:prepare
$ mvn release:perform

release:clean の実行前であれば、ロールバックすることが可能です。
ロールバックする場合は下記のコマンドを実行します。

$ mvn release:rollback

release:prepare

  • ソースにコミットされていない変更がないことを確認
  • SNAPSHOT への依存関係がないことを確認
  • POM のバージョンを x-SNAPSHOT から新しいバージョンに変更(プロンプトが表示されます)
  • POM 内の SCM 情報をタグの最終的な宛先を含むように変換
  • 変更された POM に対してプロジェクトテストを実行し、すべてが正常に動作していることを確認
  • 変更された POM をコミット
  • SCM のコードにバージョン名を付けてタグ付けします(プロンプトが表示されます)
  • POM のバージョンを新しい値 y-SNAPSHOT にバンプします(プロンプトが表示されます)
  • 変更された POM をコミット

release:perform

  • オプションのタグを使用した SCM URL からのチェックアウト
  • 定義済みの Maven ゴールを実行してプロジェクトをリリース(デフォルトは deploy site-deploy

release:clean

  • リリース・ディスクリプタを削除
  • バックアップ POM ファイルを削除

release:rollback

  • プロジェクトの POM はすべてローカルにリリース前の状態に戻され、SCM にも戻されます。これは、リリース中に作成されたバックアップファイルを使用して行われます。
  • リリース用の SCM で作成されたブランチ/タグが削除されます。(注意:これはまだ実装されていないため、SCM からブランチ/タグを手動で削除する必要があります。)

Tips

リハーサル

dryRun オプションを使用することでリハーサルが可能です。
リハーサルでは POM のコミットやタグ付けは実行されません。

$ mvn releas:prepare -DdryRun=true
$ mvn releas:clean
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment