1. ホーム
  2. java

[解決済み] Mavenで、なぜ'mvn clean'を実行するのか?

2022-03-07 23:20:48

質問

を実行するのと大きな違いは何でしょうか? mvn compilemvn clean compile は、現実的には

という、実際の違いは何なのか理解できました。 mvn clean compile は生成されたファイルをすべて削除して、また一から始めますが、なぜこんなことをしたいのでしょうか?私は、次のように考えることができます。 mvn compile は、必要であればファイルを再生成しますよね?

私のプロジェクトで気づいたことの1つは、ソースファイルを削除した場合、そのソースファイルに対して clean 通常、これは問題にはならないのですが、もしかしたらそうなるかもしれません。

解決方法は?

一部のプラグインでは clean を使用すると、正常に動作するようになります。 例えば、(少なくとも Maven 2 では) maven-war-plugin は、各依存WARを既存のディレクトリツリーに展開します。 そのためには clean を使用して、依存するWARから削除されたファイルを取り除くことができます。

もうひとつの問題は、クラスの名前を変更したときに、古いコンパイル済みバージョンがビルドツリーに残ってしまい、JARファイルなどに含まれてしまうことです......。 mvn clean .

mvn compile"は、必要であればファイルを再生成すると考えていいんですよね?

主流のプラグインでは、それは公正な仮定です。 しかし、ソースコードのコンポーネントを生成するためにプラグインを使用している場合は、ドキュメントをよく見て、生成されたソースコードをどこに置くかを確認する必要があります。 例えば、Eclipse EMFコードジェネレーターを駆動することを目的とした、サポートされていないプラグインがいくつかあります。