2017-07-12 88 views
0

我升级从库版本:Maven的负荷错误的依赖:杰克逊Codehaus的 - > fasterxml

<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的残余。

运行mvn dependency:treethis answer建议产生相同的结果。如果在我的开发机器上执行,我可以找到没有其他杰克逊库(也没有泽西lib可能取决于旧杰克逊)

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

可能与question

任何想法吗?

+1

尝试'行家干净install' – frozen

+0

@ randnum-1:同样的问题 – tokosh

回答

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.versionfasterxml.jackson.version之后,事情再次奏效。

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

+0

为了使上述工作构建一个一体机,但不是在另一个是因为,在前者那里是一个缺少依赖信息的库。在破解机器中,这个lib _had_ dep-infos,导致构建失败。 – tokosh

相关问题