2

使用する Maven の依存関係とプラグインのバージョンやその他のパラメーターを指定する必要はありません。親POMで一度だけ行うか、他の方法でそのプロパティを子POMに継承することができます。

残念ながら、依存関係やプラグインの実際のパラメーターを簡単に見つけることができないプロジェクトに何度も遭遇しました。つまり、依存関係のバージョンは空ですが、親 POM にはこれに関する情報がありません。

だから私の質問は:

  1. Mavenで依存関係とプラグインのパラメータを指定するすべての可能な方法は何ですか? つまり、バージョン番号が子 POM のプラグインにも親 pom のプラグイン管理にも存在しない場合、どこでバージョン番号を探すことができますか?

  2. Maven がこれらのパラメーターをどこから取得するかを調べるための Maven コマンドはありますか? たとえば、次のdependency:treeコマンドを使用できます。行き詰まっているバージョンの依存関係を理解するのに役立つ依存関係のリストが出力されます。しかし、これはハックであり、プラグインでは役に立ちません。もっと良いものがあるのではないでしょうか?

4

1 に答える 1

5

コマンドを実行する前に、Maven は「有効な POM」を構築します。詳細については、このスタックオーバーフローの回答を参照してください。を実行すると、任意のプロジェクトの有効な POM を表示できますmvn help:effective-pom。通常、このコマンドを実行すると、出力をファイルにリダイレクトして、テキスト エディターで表示および検索できるようにします。

POM、依存関係、およびプラグインの特定の部分について質問しました。あなたは正しい軌道に乗っています.maven-dependency-pluginが役立ちます. 私が最も頻繁に使用する目標は、、、dependency:treeおよびdependency:resolveですdependency:resolve-plugins。最初の 2 つはプロジェクトの依存関係を支援し、最後の 1 つはプラグインを支援します。更新ポリシー/リポジトリ メタデータ-U値に関係なく、Maven に強制的に依存関係を更新させるオプションを追加します。

また、空のローカル リポジトリから開始するトラブルシューティングにも役立ちます。

最後になりましたが、特定のバージョンのないプラグインをビルドで使用すると、Maven は警告を発します。常に明示的なバージョンを指定して警告を修正し、このような問題を回避してください。

于 2014-10-02T14:38:47.703 に答える