web-dev-qa-db-ja.com

シェードプラグインによって生成されたdependency-reduced-pom.xmlの目的は何ですか?

私は ドキュメント を読み直しましたが、それが何のために使われているのかについて話すものは何も見つかりませんでした。

57
Transcendence

Shade:shade Mojoは、dependency-reduced-pom.xmlファイルを作成するcreateDependencyReducedPomパラメーターについて特に詳しく説明されています。 maven-shade-plugin/shade-mojo.html#createDependencyReducedPom

要するに、これは、(通常のJARの代わりに)影付きのJARを別のモジュールの依存関係として使用する場合に非常に便利です。そのdependency-reduced-pom.xmlには、影付きのJARにすでに存在するJARが含まれないため、無駄な複製が回避されます。

38
Tome

docs を約100回読みましたが、これが何のためであり、実際にどのようなユースケースであるかを理解できませんでした。

最後に、これは私が思うことです:依存関係A、B、C、D、Eのプロジェクトがあるとしましょう。_pom.xml_では、uber-jarを作成するときにシェードプラグインを設定します( _foo.jar_)と呼び、A、B、Cを影付きのjarに含めますが、何らかの理由で、プロジェクトがそれらに依存している場合でも、D、Eを影付きのjarに含めないことにします。テストにのみ必要です(たとえば、scopetestであり、シェーディングされたjarに含まれていない依存関係)。 _dependency-reduced-pom.xml_は、D、Eを定義します。誰かが_foo.jar_を使用したい場合、_dependency-reduced-pom.xml_が_foo.jar_に依存関係D、Eが欠落していることに注意してください-ご自身の責任で使用してください。その後、_foo.jar_を使用するプロジェクトにD、Eを明示的に追加することにします。

したがって、_dependency-reduced-pom.xml_は_missing-dependencies.xml_に似ており、shadeプラグインによって出力されるuber-jarに欠落している依存関係をリストします。

14
morpheus