web-dev-qa-db-ja.com

dependency-reduced-pom.xmlはpom.xmlの代わりに自動的に使用されますか?

25
Johnny

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の実行後:

  • 最初のPOMは変更されません。
  • dependency-reduced-pom.xmlという名前の完全に無視できる一時ファイルがルートフォルダー内に生成されます( これは、このプラグインの未解決の問題であると考えられます );
  • シェーディングされたアーティファクトには、META-INFディレクトリ内で変更されていない初期POMが含まれ、削減されたPOMは含まれません(これはあまり重要ではありませんが、より詳しく説明します-これは自動的に閉じられる問題がありました: MSHADE-36 );
  • 展開されるPOMは縮小POMです。
  • 影付きのアーティファクトは、デフォルトでプロジェクトのメインアーティファクトになります。
29
Tunaki