【问题标题】:In Maven 2, how do I know from which dependency comes a transitive dependency?在 Maven 2 中,我如何知道传递依赖来自哪个依赖?
【发布时间】:2010-09-07 05:49:02
【问题描述】:

我想知道我的 pom.xml 中描述的哪个依赖在我的目标目录中带来了传递依赖。

更准确地说,我的 WEB-INF/lib 目录中有库“poi-2.5.1-final-20040804.jar”,我想知道我的 pom.xml 中的哪个依赖项带来了它。

【问题讨论】:

    标签: java maven-2 build-process


    【解决方案1】:

    要添加到 @David Crow,这里是来自 Maven 站点的 a dependency:tree example

    mvn dependency:tree -Dincludes=velocity:velocity
    

    可能输出

    [INFO] [dependency:tree]
    [INFO] org.apache.maven.plugins:maven-dependency-plugin:maven-plugin:2.0-alpha-5-SNAPSHOT
    [INFO] \- org.apache.maven.doxia:doxia-site-renderer:jar:1.0-alpha-8:compile
    [INFO]    \- org.codehaus.plexus:plexus-velocity:jar:1.1.3:compile
    [INFO]       \- velocity:velocity:jar:1.4:compile
    

    【讨论】:

    • 这对我不起作用;我得到的只是关于不受支持的“遗留”值的错误。运行@David Crow 的版本(即没有速度标志)运行良好。
    【解决方案2】:

    使用Maven Dependency Plugin

    mvn dependency:tree
    

    【讨论】:

      【解决方案3】:

      如果您使用 eclipse 和 m2eclipse plugin,那么有一个图形版本的依赖树,您可以在其中按范围等进行过滤。

      【讨论】:

        【解决方案4】:

        如果你用“-x”开关运行maven,它会打印出大量的诊断信息,我想相关的依赖路径可以从那里得到。

        【讨论】:

        • 其实这个答案很有用。我面对的是众所周知的aether class undefined bug caused by upgrading my Maven from 3.0 to 3.3,下面的命令显示另一个 maven 插件仍在采购 org.apache.maven:maven-core 的 3.0.5 版本:mvn -X dependency:tree -Dverbose |grep -C20 sonatype.aether
        • 虽然“-X”(大写,备用名称“--debug”)通常很有用,但它不会告诉您版本号的来源。无论如何,不​​在 Maven 3.6.0 上。
        【解决方案5】:

        你可以有很多报告

        mvn 网站

        其中之一是依赖报告。

        【讨论】:

          【解决方案6】:

          如果您已使用 mvn site 为项目生成站点,则依赖信息也包含在项目信息/依赖项报告中。

          【讨论】:

            猜你喜欢
            • 2018-11-19
            • 1970-01-01
            • 2018-07-06
            • 1970-01-01
            • 2019-08-23
            • 2019-10-29
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多