Mavenシェードプラグイン)によって作成されたdependency-reduced-pom.xml
は、uberjarに依存するプロジェクトで(通常のpom.xml
ではなく自動的に使用されます。 ?
多くのdependency-reduced-pom.xml関連の質問を読んだ後、これを尋ねても答えが見つからない場合:
ベースディレクトリにdependency-reduced-pom.xmlを追加するMavenシェードプラグイン
shadeプラグインによって生成されるdependency-reduced-pom.xmlの目的は何ですか?
mavenパッケージコマンドを呼び出すときに作成された `dependency-reduced-pom.xml`ファイルとは何ですか?
dependency-reduced-pom.xml
は、ビルド時にプロジェクトの${basedir}
に生成されます。このファイルは、シェーディングされたjarへのパッケージ化にのみ使用される一時ファイルです。 createDependencyReducedPom
属性のドキュメントを引用:
シェーディングされたアーティファクトの簡略化されたPOMを生成するかどうかにフラグを立てます。
true
に設定すると、uber JARに含まれていた依存関係は、生成されたPOMの<dependencies>
セクションから削除されます。削減されたPOMの名前はdependency-reduced-pom.xml
であり、シェーディングされたアーティファクトと同じディレクトリに保存されます。dependencyReducedPomLocation
も指定しない限り、プラグインはdependency-reduced-pom.xml
という名前の一時ファイルをプロジェクトベースで作成します。
明確にするために、maven-shade-plugin
の実行後:
dependency-reduced-pom.xml
という名前の完全に無視できる一時ファイルがルートフォルダー内に生成されます( これは、このプラグインの未解決の問題であると考えられます );META-INF
ディレクトリ内で変更されていない初期POMが含まれ、削減されたPOMは含まれません(これはあまり重要ではありませんが、より詳しく説明します-これは自動的に閉じられる問題がありました: MSHADE-36 );