【问题标题】:mvn dependency:tree doesn't really show all dependencies [duplicate]mvn 依赖:树并没有真正显示所有依赖项[重复]
【发布时间】:2016-03-16 23:25:40
【问题描述】:

我在编译一个包含许多依赖项的 jar 时遇到了问题,特别是 snakeyaml 的重叠版本(我们需要 1.11,一些依赖项正在拉入 1.9)。我们运行了mvn dependency:tree,但我们没有在任何输出中看到有问题的次要版本。进一步检查,是jruby-complete,然后拉入snakeyaml。为什么mvn dependency:tree 没有向我们展示这一级别的向下钻取:

[INFO] |     |  +- org.apache.hbase:hbase-it:jar:0.98.6-cdh5.2.5:compile
[INFO] |     |  |  +- (org.apache.hbase:hbase-common:jar:0.98.6-cdh5.2.5:compile - omitted for duplicate)
[INFO] |     |  |  +- (org.apache.hbase:hbase-protocol:jar:0.98.6-cdh5.2.5:compile - omitted for duplicate)
[INFO] |     |  |  +- (org.apache.hbase:hbase-client:jar:0.98.6-cdh5.2.5:compile - omitted for duplicate)
[INFO] |     |  |  +- org.apache.hbase:hbase-shell:jar:0.98.6-cdh5.2.5:compile
[INFO] |     |  |  |  +- (org.apache.hbase:hbase-common:jar:0.98.6-cdh5.2.5:compile - omitted for duplicate)
[INFO] |     |  |  |  +- (org.apache.hbase:hbase-protocol:jar:0.98.6-cdh5.2.5:compile - omitted for duplicate)
[INFO] |     |  |  |  +- (org.apache.hbase:hbase-client:jar:0.98.6-cdh5.2.5:compile - omitted for duplicate)
[INFO] |     |  |  |  +- (org.apache.hbase:hbase-prefix-tree:jar:0.98.6-cdh5.2.5:runtime - omitted for duplicate)
[INFO] |     |  |  |  +- (org.apache.hbase:hbase-server:jar:0.98.6-cdh5.2.5:compile - omitted for duplicate)
[INFO] |     |  |  |  +- (org.apache.hbase:hbase-hadoop-compat:jar:0.98.6-cdh5.2.5:compile - omitted for duplicate)
[INFO] |     |  |  |  +- (org.apache.hbase:hbase-hadoop2-compat:jar:0.98.6-cdh5.2.5:compile - omitted for duplicate)
[INFO] |     |  |  |  +- (com.yammer.metrics:metrics-core:jar:2.2.0:compile - omitted for duplicate)
[INFO] |     |  |  |  +- (commons-logging:commons-logging:jar:1.1.1:compile - omitted for conflict with 1.2)
[INFO] |     |  |  |  +- org.jruby:jruby-complete:jar:1.6.8:compile
                              >>>>>>> WHY ARE THERE NO DEPENDENCIES HERE? >>>>>>>>>
[INFO] |     |  |  |  +- (org.cloudera.htrace:htrace-core:jar:2.04:compile - omitted for duplicate)
[INFO] |     |  |  |  +- (org.apache.hadoop:hadoop-common:jar:2.5.0-cdh5.2.5:compile - omitted for duplicate)

为什么the dependencies of jruby-complete 没有在树中列出? mvn dependency:tree 是否只有 gfo 到一定深度?这里有什么规则?如果mvn dependency:tree 简单地向我们展示了它的snakeyaml 依赖关系,我们可以节省几个小时的复杂调试时间。

【问题讨论】:

  • 这不是重复的。较低版本的依赖项也没有显示详细标志。

标签: java maven tree


【解决方案1】:

我相信this forum topic 会回答你的问题。如果依赖关系已经存在于树中的较高级别,则依赖关系树 mojo 会修剪较低级别的依赖关系。这意味着所有 jruby-complete 的依赖项(如果有的话)都列在树中较浅的深度。您可以使用verbose flag (-Dverbose) 来显示省略的依赖项。

【讨论】:

  • 所以在这种情况下,这意味着重复数据删除不考虑依赖项的版本。你也这么理解吗?
  • 大概就是这样。很难说使用了哪个依赖项,因为您可以在树中的相同深度拥有相同的依赖项,而那时我不能说会使用哪个。我一直依赖 Maven 的依赖层次结构的 M2E 可视化,因为它会显示整个树和遗漏。您可以将所有隐式依赖项查看为一个列表,单击其中任何一个,它将向您显示所有依赖它的依赖项以及遗漏。对我来说效果很好。
  • 那么如何查看使用过的依赖项,我的意思是它们最终将放在一个胖罐子里
  • 看来-Dverbose 不能与-DoutputType=dot 一起使用。来吧 Maven,我想要的只是我的依赖关系的图形表示......
  • 自 maven-dependency-plugin 3.0 以来不支持详细
猜你喜欢
  • 2014-08-20
  • 1970-01-01
  • 1970-01-01
  • 2014-11-27
  • 1970-01-01
  • 2020-04-02
  • 2019-08-13
  • 2013-11-05
  • 1970-01-01
相关资源
最近更新 更多