【问题标题】:Maven loads wrong dependencies: Jackson codehaus -> fasterxmlMaven 加载错误的依赖项:Jackson codehaus -> fasterxml
【发布时间】:2017-07-12 03:26:39
【问题描述】:

我从以下位置升级了一个库版本:

    <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-mapper-asl</artifactId>
        <version>1.9.13</version>
    </dependency>

    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>2.8.9</version>
    </dependency>

在运行构建或仅运行mvn dependency:resolve 时,它会在部署服务器上失败并显示The following artifacts could not be resolved: org.codehaus.jackson:jackson-core-asl:jar:2.8.9, org.codehaus.jackson:jackson-mapper-asl:jar:2.8.9: Could not find artifact org.codehaus.jackson:jackson-core-asl:jar:2.8.9 in central ...。它在我的开发机器上运行时以某种方式工作。两台机器(仍然)使用 Java7。

它以某种方式尝试使用新 ID 加载旧工件。但是pom.xml中没有org.codehaus的残余。

按照this answer 的建议运行mvn dependency:tree 会产生相同的结果。如果在我的开发机器上执行,我找不到其他杰克逊库(也没有可能依赖于旧杰克逊的球衣库)

我试图删除.m2/ 中的org/codehaus/jackson 目录,但它只是自动重新填充它。

可能相关question

有什么想法吗?

【问题讨论】:

  • 试试maven clean install
  • @randnum-1:同样的问题

标签: maven


【解决方案1】:

答案的性质(再次)相当愚蠢,并且在上述问题中不可见。实际的依赖是:

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>${jackson.version}</version>
</dependency>

变量jackson.version 在此pom.xml 及其父项中定义。因此,当使用旧版本时,它可以工作,因为存在一些被覆盖 jackson.version 的依赖库。但是随着名称更改的升级,那些间接依赖库的名称没有新版本。在 pom 中将 jackson.version 重命名为 fasterxml.jackson.version 后,一切又恢复了。

解决方案:仔细查看mvn -X dependency:tree

【讨论】:

  • 为了使上述构建在一台机器上工作但不能在另一台机器上工作,是因为前者有一个缺少依赖信息的库。在破解机器中,这个库 dep-infos,导致构建失败。
猜你喜欢
  • 1970-01-01
  • 2012-11-18
  • 1970-01-01
  • 1970-01-01
  • 2011-09-19
  • 1970-01-01
  • 2013-11-18
  • 1970-01-01
  • 2017-12-03
相关资源
最近更新 更多