387

mvn clean packageとの違いは正確には何mvn clean installですか? これらのコマンドの両方を実行すると、どちらも同じことをしているように見えます。

4

6 に答える 6

487

まあ、両方ともきれいになります。つまり、ターゲット フォルダーが削除されます。本当の問題は、パッケージとインストールの違いは何ですか?

packageコードをコンパイルし、パッケージ化します。たとえば、プロジェクトが jar であると pom が示している場合、プロジェクトをパッケージ化してターゲット ディレクトリのどこかに (デフォルトで) 配置すると、jar が作成されます。

installコンパイルしてパッケージ化しますが、ローカル リポジトリにもパッケージを配置します。これにより、他のプロジェクトがそれを参照し、ローカル リポジトリから取得できるようになります。

ドキュメンテーション

于 2013-05-17T05:34:26.390 に答える
252

clean の機能 (両方のコマンドで共通) - 以前のビルドで生成されたすべてのファイルを削除します


コマンドpackageinstallの違いになると、まずMaven プロジェクトのライフサイクルを理解する必要があります


これらはmavenのデフォルトのライフサイクルフェーズです

  • 検証- プロジェクトが正しく、必要なすべての情報が利用可能であることを検証します
  • compile - プロジェクトのソース コードをコンパイルします。
  • test - 適切な単体テスト フレームワークを使用して、コンパイルされたソース コードをテストします。これらのテストでは、コードをパッケージ化またはデプロイする必要はありません
  • package - コンパイルされたコードを取得し、JAR などの配布可能な形式でパッケージ化します。
  • 検証- 統合テストの結果に対してチェックを実行し、品質基準が満たされていることを確認します
  • install - 他のプロジェクトの依存関係としてローカルで使用するために、パッケージをローカル リポジトリにインストールします。
  • deploy - ビルド環境で実行され、他の開発者やプロジェクトと共有するために最終パッケージをリモート リポジトリにコピーします。

Maven がどのように機能するかというと、ライフサイクル フェーズのいずれかに対してコマンドを実行すると、コマンド自体を実行する前に、デフォルトの各ライフ サイクル フェーズが順番に実行されます。

実行順序

検証 >> コンパイル >> テスト (オプション) >> パッケージ >> 検証 >> インストール >> デプロイ

したがって、コマンドmvn packageを実行すると、パッケージまでのすべてのライフサイクル フェーズのコマンドが実行されます。

検証 >> コンパイル >> テスト (オプション) >> パッケージ

また、mvn installに関しては、インストールまでのすべてのライフサイクル フェーズのコマンドを実行します。これには、パッケージも含まれます。

検証 >> コンパイル >> テスト (オプション) >> パッケージ >> 検証 >> インストール


したがって、実質的には、installコマンドはpackageコマンドが行うすべてのことと、さらにいくつかのことを行います (他のプロジェクトの依存関係としてローカルで使用するために、パッケージをローカルリポジトリにインストールします)。

出典: Maven ライフサイクル リファレンス

于 2019-04-12T06:16:11.707 に答える
26

パッケージは、POM ファイルに従って Jar/war を生成します。 installは、生成された jar ファイルを、他の依存関係がある場合はローカル リポジトリにインストールします。

インストール段階はパッケージ段階の後に来る

于 2017-07-06T08:08:20.773 に答える
11

パッケージとインストールは、maven ビルド ライフサイクルのさまざまなフェーズです。package フェーズはそれより前のすべてのフェーズを実行し、プロジェクトを jar としてパッケージ化して停止します。同様に、インストール フェーズは前のすべてのフェーズを実行し、最終的に他の依存プロジェクトのためにプロジェクトをローカルにインストールします。

Maven ビルドのライフサイクルを理解するには、次のリンクを参照してください https://ayolajayamaha.blogspot.in/2014/05/difference-between-mvn-clean-install.html

于 2016-12-02T13:12:41.273 に答える