【问题标题】:How to find which dependency current jar file is referred?如何找到引用了哪个依赖当前jar文件?
【发布时间】:2014-05-02 05:31:30
【问题描述】:

在 Eclipse 中,在项目资源管理器中展开当前项目,

点击Java Resources -> libraries -> Maven Dependencies

我发现有两个不同版本的jar文件,即:

commons-lang-2.1.jar
and
commons-lang3-3.1.jar

但是来自pom.xml,我不知道commons-lang-2.1.jar 来自哪里,因为其中一个工件必须要求它。但是从每个神器中检查pom文件太麻烦了……

我听说dependency-tree 可以工作类似的东西,但不知道如何使它在这种情况下工作。任何提示表示赞赏。

【问题讨论】:

  • 其实maven有自己的库文件夹,编译的时候可以从网上下载丢失的库。
  • @libik 问题是这些版本需要什么。
  • 在 Eclipse 中显示。首先单击 pom.xml 文件,然后单击“依赖层次结构”选项卡应该会为您提供这些元素来自何处的信息。

标签: java maven


【解决方案1】:
mvn dependency:tree

查找 commons-lang 的两个实例,看看需要它们。

也就是说,这两个版本不兼容,可以存在于同一个应用程序中:

http://commons.apache.org/proper/commons-lang/article3_0.html

See this answer of mine regarding deciphering the tree output. 简而言之,缩进库是它上面的非缩进库的依赖关系:依赖树。

【讨论】:

    【解决方案2】:

    执行

    mvn dependency:tree
    

    如果你有非常大的依赖树并且难以阅读,你可以使用

    mvn dependency:tree -Dincludes=org.apache.commons:commons-lang3
    

    仅包括此工件的出现

    它会从你的 pom.xml 中列出所有被直接或间接拉取的依赖项,并放置 <exclusion> 以避免消耗不需要的库

    【讨论】:

      猜你喜欢
      • 2011-04-25
      • 2020-09-21
      • 2016-03-27
      • 2017-02-08
      • 2020-11-20
      • 1970-01-01
      • 2011-06-24
      • 2015-08-20
      相关资源
      最近更新 更多