2013-10-26 253 views
2

mvn dependency:tree非常適合列出傳遞性依賴關係。但是,如果你的POM中有一個明確的依賴引入了一箇中斷(不可用)的依賴關係,那麼任何maven目標(包括dependency:tree)都將快速失敗,並且構建輸出只會說明工件未能下載,但不是你的哪個依賴使用它。mvn依賴關係:具有傳遞性依賴關係的樹

我知道IDE可以計算出哪些依賴關係來自哪裏,但是有沒有純粹的Maven方式?

我正在使用Maven 3.1.1。

+0

你的意思是你所依賴的一些神器遺漏了傳遞依賴嗎? – Boj

+0

是的,希望我的編輯能讓問題更清楚。 – coudy

回答

1

當您運行mvn dependency:tree並且它失敗很快時,您會收到生成錯誤報告。在該報告中,在「失蹤」部分的底部,你應該有「路徑依賴」,看起來像這樣:

Path to dependency: 
     1) your.application:jar:<version> 
     2) your.dependency:jar:<version> 
     3) the.missing.dependency:jar:<version> 

「your.application」依賴「your.dependency」這取決於「the.missing.dependency」。

當然,如果依賴關係樹中缺失的依賴關係較低,那麼該列表可能會更長。

+0

我沒有得到「路徑依賴」,而是:[錯誤]無法執行項目目標webapp:無法解析項目abc的依賴關係:xyz:jar:0.1.0-SNAPSHOT:無法在swank收集依賴關係-clojure:swank-clojure:jar:1.4.2 - > cdt:cdt:jar:1.2.6.2 - > org.clojars.gjahad:debug-repl:jar:0.3.1:...'。所以,雖然你說得對,信息是存在的,我如何在你的答案中得到輸出? – coudy

+0

@coudy這可能與您正在運行的maven版本有關。你使用的是什麼版本的maven? – summerbulb

+0

我猜。版本更新爲後人問題。 – coudy