2013-10-26 256 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