mvnクリーンインストールvsデプロイvsリリース


132

私はただmavenを学んでいるだけですが、最近はどんどん進んでいく必要があります。違いを知りたい

mvn clean install

mvn release

mvn deploy

できるだけ説明的にしてください。

回答:


223

cleaninstallそしてdeploy 相は有効なライフサイクルフェーズと、それらはすべて、それらの前段階、およびこれらのフェーズに結合された目標をトリガーします呼び出します。

mvnクリーンインストール

このコマンドはcleanフェーズを呼び出し、次にinstallフェーズを順番に呼び出します。

  • cleanビルド時にプロジェクトのディレクトリにあるファイルを削除しますtargetデフォルト)
  • installローカルリポジトリにパッケージをインストールし、他のプロジェクトの依存関係としてローカルで使用します

mvnデプロイ

このコマンドはdeployフェーズを呼び出します。

  • deploy他の開発者やプロジェクトと共有するために、最終パッケージをリモートリポジトリにコピーします

mvnリリース

これは有効なフェーズでも目標でもないため、何も起こりません。ただし、リリース管理の自動化に使用されるMavenリリースプラグインを指します。プロジェクトのリリースは、2つのステップで行われます:prepareおよびperform。記載されているとおり:

リリースの準備には、次のリリースフェーズがあります。

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

その後:

リリースを実行すると、次のリリースフェーズが実行されます。

  • オプションのタグを使用したSCM URLからのチェックアウト
  • 事前定義されたMavenゴールを実行してプロジェクトをリリースします(デフォルトでは、サイト展開をデプロイします)

こちらもご覧ください


1
これを明確にしていただけますか? これは有効なフェーズでも目標でもないので、これは何もしません。ただし、Mavenリリースプラグインを指します。それがフェーズでも目標でもない場合、それをどのように呼ぶか?
gvlasov 2015年

26
  • mvn installプロジェクトを依存関係として使用するローカルアプリケーションのために、パッケージ化されたmavenプロジェクトをローカルリポジトリに配置します。
  • mvn release 基本的には、現在のコードをSCMのタグに挿入し、プロジェクトのバージョンを変更します。
  • mvn deploy他の開発者と共有するために、パッケージ化されたmavenプロジェクトをリモートリポジトリに配置します。

リソース:

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.