【问题标题】:1.4 Commons-DBCP being brought in instead of 1.31.4 Commons-DBCP 被引入而不是 1.3
【发布时间】:2011-06-14 20:42:11
【问题描述】:

我有一个奇怪的情况。在 jar A 中,我明确引入了 commons-dbcp 1.3 版。在 jar B 中,我依赖于 jar A。但是,当我在 jar B 中引入 jar A 依赖项时,我的 maven 依赖层次结构显示 jar B 现在使用的是 1.4。如果我删除该依赖项,commons-dbcp 将从我的 Maven 依赖项层次结构中消失,因此我确信它不会被拉入其他地方。而当我在 jar A 的 maven 依赖层次结构中时,它只显示 1.3。

有人知道为什么会发生这种情况吗?

【问题讨论】:

    标签: java maven dependency-management apache-commons-dbcp


    【解决方案1】:

    Maven 自动确定为传递依赖引入的版本。您可能对 commons-dbcp 有多个依赖项(如果它们在不同的范围内,您的测试可能不会显示它)。通过mvn dependency:tree 使用Maven dependency plugin 查看其他依赖项。

    【讨论】:

    • 据此,我只有一个对 commons-dbcp 的依赖。
    • 您应该扩展您的问题详细信息。显示你的 pom。显示依赖项的输出:树等。我唯一一次遇到 mvn 拉入与请求的版本不同的版本是由于传递依赖项。我想如果你有双重定义它可能会发生 - 一次在dependcyManagement部分,再一次在依赖项中?
    • 再次查看之后,我意识到了问题所在,以及为什么它没有出现在之前的 jar 中或通过依赖树。 dbcp 版本被设置在我们团队使用的父 pom 中,这就是覆盖它的原因。你让我想到要调查,所以谢谢。
    猜你喜欢
    • 2011-06-10
    • 2012-07-24
    • 1970-01-01
    • 2019-02-10
    • 1970-01-01
    • 2014-06-16
    • 2011-09-24
    • 2013-09-04
    • 1970-01-01
    相关资源
    最近更新 更多