我不認爲有一個插件可以做到這一點。我認爲其中的原因是沒有人真的對這類信息感興趣。
考慮依賴到發佈文物。一旦他們被下載到你的本地倉庫,Maven就不會再次下載它們(除非你刪除它們);所有未來的解決方案都將通過當地的回購協議完成。
當然,在你的本地回購的神器目錄將包含它是從,其實際的URL可能會或可能不會隨着時間的推移同一下載回購的象徵名稱的文件_remote.repositories
。
這就是Maven座標是全局的。例如,(說)commons-codec:commons-codec:1.10
的給定版本必須是相同的,無論它來自何處。否則,如果某些發佈會根據它們的來源而有所不同,那麼一切都會崩潰。正因爲如此,沒有人關心依賴從何而來。
快照依賴關係是一個不同的故事,但您不應該依賴它們太久,因爲您不想基於未來可能會發生變化的依賴來發布您的東西。通常情況下,你可以控制你的快照依賴關係來自哪裏,因此找到的地方就是你的依賴來自於。
有時候,傳遞依賴將包括POM,它指定Maven從中獲取子依賴的附加回購。有時候,這些知識庫被分解或停止,打破依賴鏈。在這種情況下,您可能想要在您的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