Maven のバージョンが異なると、WAR ファイルに追加のライブラリが含まれることになる
質問
Maven を使用して Tomcat サーバーにデプロイする war ファイルを構築しようとしていますが、war ファイルを構築するときにいくつかの奇妙な動作に気づきました。
プロジェクトフォルダーからコマンドを実行する場合: mvn clean compile package -DskipTests
- Mavenバージョン3.0はwarファイルを生成する 12.079MB (WEB-INF/libフォルダに49個のjarファイル)
- Mavenバージョン3.0ベータ1 8.7MBのwarファイル(31 jar)を生成する。 WEB-INF/libフォルダ内のファイル)
- Maven バージョン 2.11 は 2.3MB の war ファイルを生成します (WEB-INF/lib フォルダーに 3 つの jar ファイル)
プロジェクトに余分な jar ファイルが含まれる原因は何ですか?過去にバージョン 2.11 を使用してプロジェクトをビルドすると正常に動作したため、おそらくこれらは必要ありません。
解決
私にも似たようなことが起こりました。何が起こったのかを説明します。
Maven 2.x では、プラグインのバージョンは Maven 自体によって設定されます。Maven 3.x では、「最新」が使用され、警告が表示されます。私の場合、新しいバージョンのコンパイラ プラグインを使用するといくつかの違いが生じ、新しいバージョンの依存関係プラグインを使用すると他の違いが生じました。
pom.xml ですべてのプラグインのすべてのバージョンを明示的に設定すると (とにかくベスト プラクティスです)、不一致は解消されました。
所属していません StackOverflow