我从:
升级了库版本 <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
任何想法?
答案 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