Maven加载了错误的依赖:Jackson codehaus - > fasterxml

时间:2017-07-12 03:26:39

标签: maven

我从:

升级了库版本
    <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加载旧工件。但org.codehaus中没有遗留pom.xml

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

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

可能相关question

任何想法?

1 个答案:

答案 0 :(得分:2)

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

<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