私はそれをするプラグインはないと思います。そして私はその理由は、誰もその種の情報に本当に関心がないということだと思います。
人工物に依存することを検討してください。ローカルリポジトリにダウンロードされると、Mavenはそれらを再度ダウンロードすることはありません(削除しない限り)。そのアーティファクトへの今後のすべての決議は地方のレポを介して行われます。
確かに、それは、その実際のURLまたは時間をかけて同じではないかもしれないかもしれない、からダウンロードしたレポの象徴名前が含まれています、あなたの地元のレポのアーティファクトディレクトリ内のファイル_remote.repositories
。
これは、Mavenの座標がグローバルであるということです。たとえば、特定のリリース(たとえば)commons-codec:commons-codec:1.10
は、どこから来たのかにかかわらず同じでなければなりません。それ以外の場合、特定のリリースがどこから来たのかによって異なる場合は、すべてが崩れてしまいます。このため、依存関係がどこから来たのかは誰も気にしません。
スナップショットの依存関係は別の話ですが、今後変更される可能性のある依存関係に基づいてスナップショットをリリースしたくないため、スナップショットの依存関係は長すぎます。通常、スナップショットの依存関係がどこから来るのかを制御していますので、の部分は、の依存関係が無駄になっています。
ただし、推移的な依存関係には、Mavenがサブ依存関係を取得するための追加のreposを指定するPOMが含まれることがあります。そして、時にはこれらのリポジトリは独立しているか、または中断され、依存関係のチェーンを破ります。その場合は、settings.xml
でブロックまたは再ルーティングすることができます。あなたの地元のレポにあるすべてのPOMによる簡単なスキャンは、通常、それらを嗅ぎ分けるために十分である:
# Linux/Unix
%> find <your local repo> -name '*.pom' | xargs grep -c '<repositories>' | grep -v ':0'
これは、一緒にmvn dependency:tree
と、推移的依存性が誤動作リポジトリに依存しているかどうかを確認するために十分でなければなりません。
解決したい問題はありますか? – khmarbaise
推移依存性解決をサポートしていないBazelを使用するように私たちのコードベースを移行しようとしています。私はmavenを使って依存関係を解決し、出力を使ってダウンロードと依存関係のためのBazelルールを生成し、Bazelにダウンロード作業をさせたいと思います。 – Yunchi