2016-02-02 9 views
9

によって作成されたは、(通常のpom.xmlではなく)uberjarに依存するプロジェクトで自動的に使用されますか?dependency-reduced-pom.xml依存低減-のpom.xml関連の質問の数を読み、答えを創設しなかった後にこれを頼むpom.xmlではなくdependency-reduced-pom.xmlが自動的に使用されていますか?

Maven shade plugin adding dependency-reduced-pom.xml to base directory

What is the purpose of dependency-reduced-pom.xml generated by the shade plugin?

What is `dependency-reduced-pom.xml` file which created when calling maven package command?

答えて

13

dependency-reduced-pom.xmlされますビルド時にプロジェクトの${basedir}に生成されます。このファイルは、影付きのjarにパッケージングするためにのみ使用される一時ファイルです。 createDependencyReducedPom属性の文書を引用:

旗日陰のアーティファクトのために単純化されたPOMを生成するかどうか。 trueに設定すると、生成されたPOMの<dependencies>セクションから、uber JARに含まれていた依存関係が削除されます。縮小されたPOMはdependency-reduced-pom.xmlと名付けられ、は影付きのアーティファクトと同じディレクトリに格納されます。 dependencyReducedPomLocationも指定しない限り、プラグインはという名前のというという名前のプロジェクトをプロジェクトベースに作成します。

maven-shade-pluginが実行された後、それを明確にする:

  • をあなたの最初のPOMはそのまま残されます。
  • dependency-reduced-pom.xmlという名前を完全に無視できる一時ファイルは、ルートフォルダ(this is considered an open issue with this plugin)内に生成されています。
  • 陰影付きのアーティファクトには、変更されたPOMではなく、META-INFディレクトリ内に変更されていない最初のPOMが含まれます(これは実際には重要ではありませんが、
  • 展開されるPOMは、縮小されたPOMです。
  • 影付きのアーティファクトは、プロジェクトの主なアーティファクトになります。
+0

あなたの答えが消えたところは分かりました:)いくつかの点はまだ明確ではありません:1)仮の*ファイルであれば、それはなぜ後で削除されないのですか? 2)だから、答えはNOですか?あなたが言及したMSHADE-36問題のために? 3)MSHADE-36が修正され、依存関係が縮小され、パッケージ化されたpom.xmlが置き換えられる場合、答えはYESになりますか? :) – Stas

+1

1)いいえ。私はそれが削除することができると思う、はい。私はこれについての問題を見つけることができませんでした。 2)&3)実際にはMETA-INFフォルダ内のPOMはインフォメーションだけなので、POMが縮小されていないことは重要ではありません。 Whayは、導入されたPOMが削減されたPOMになるということが重要です。したがって、影付きのアーティファクトに依存する場合は、縮小したPOM(効果的に「初期」POMを置き換えます)に依存します。 – Tunaki

+1

@StasSあなたの質問を読んで、はい、はいです:)。 – Tunaki

関連する問題