web-dev-qa-db-ja.com

"mvn clean install"は "mvn install"とどう違うのですか?

mvn clean installmvn installの違いは何ですか?

174
Leonid

cleanは、Mavenの独自のビルドライフサイクルフェーズ(アクションまたはタスクと見なすことができます)です。 mvn clean installは、各モジュールに対してcleanフェーズを実行する前に、各モジュールでinstallフェーズを実行するようにMavenに指示します。

これにより、コンパイル済みのファイルがすべて消去され、各モジュールを最初からコンパイルしていることを確認できます。

180
Powerlord

Mavenでは、コマンドラインで目標フェーズまたはライフサイクルフェーズ(あるいはその両方)を指定できます。

cleaninstallは、 2つの異なるライフサイクルフェーズ異なるプラグイン実行がバインドされている (デフォルトごと、または 明示的にpom.xmlで )のいずれかです。

cleanフェーズは、規約に従って、ビルドを再現可能にすることを目的としています。つまり、以前のビルドによって作成されたものをクリーンアップします。ほとんどの場合、それは clean:clean を呼び出すことによって行われ、これは${project.build.directory}にバインドされたディレクトリを削除します(通常 "target"と呼ばれます)。

40

複数の電話をかけることができます ターゲット Mavenでゴールmvn clean installは、最初にcleanを呼び出し、次にinstallを呼び出します。 cleanは標準ではないため、手動でクリーニングする必要があります。 ターゲット すべてのインストールで自動的に実行されるわけではありません。

cleanはターゲットフォルダを削除します - すべてのクラスファイル、Javaドキュメント、jar、レポートなどを削除します。 cleanを指定しないと、対応するソースファイルが変更されていないときにクラスをコンパイルしないため、mavenは「やるべきことをする」だけになります(簡単に言うと)。

我々はそれをアントではターゲット、メイブンではゴールと呼ぶ。

34
Andreas_D

Mavenの用語に固執するには:

  • 「クリーン」はクリーンライフサイクルのフェーズです
  • 「インストール」は、デフォルトのライフサイクルのフェーズです。

http://maven.Apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference

22
Puce

@Andreas_Dについても同様に、プロジェクト内でSpringをあるバージョンから別のバージョンに更新することを行わずにクリーンアップすると言った場合は、両方ともアーティファクトに巻き込まれます。 Mavenを使用してFlex開発を行うときには、この点をよく調べてください。

3
mezmo