自从今天早上做maven构建后,我收到了以下错误。昨天和今天没有具体的变化。有人可以帮我解决这个问题吗? 我尝试清除所有本地存储库,将jackson版本更改为1.9.10。 令人惊讶的是,这对于正在进行相同构建的同事来说很有用。
[ERROR] Failed to execute goal on project netvogue-database-api: Could not resolve dependencies for project org.netvogue.server:netvogue-database-api:jar:1.0-SNAPSHOT: Failed to collect dependencies for [org.springframework.data:spring-data-neo4j-rest:jar:2.1.0.RC4 (compile), org.codehaus.jackson:jackson-jaxrs:jar:1.8.3 (compile), org.codehaus.jackson:jackson-mapper-asl:jar:1.8.3 (compile), org.neo4j:neo4j-kernel:jar:tests:1.8.RC1 (test), org.neo4j:neo4j-cypher:jar:1.8.RC1 (compile), com.amazonaws:aws-java-sdk:jar:1.3.10 (compile), org.imgscalr:imgscalr-lib:jar:4.2 (compile), org.springframework:spring-context:jar:3.1.2.RELEASE (compile), org.springframework.security:spring-security-config:jar:3.1.2.RELEASE (compile), org.springframework.security:spring-security-web:jar:3.1.2.RELEASE (compile), org.slf4j:slf4j-api:jar:1.5.10 (compile), org.slf4j:jcl-over-slf4j:jar:1.5.10 (runtime), org.slf4j:slf4j-log4j12:jar:1.5.10 (runtime), log4j:log4j:jar:1.2.16 (compile), junit:junit:jar:4.7 (test)]: No versions available for org.codehaus.jackson:jackson-core-asl:jar:[1.8,1.9) within specified range -> [Help 1]
答案 0 :(得分:11)
杰克逊的jackson-core-asl
maven-metadata.xml
文件似乎已损坏。
当Maven尝试从某个范围中解析依赖项版本时,它必须查看maven-metadata.xml
文件以确定它可以选择的候选版本。目前该文件如下:
<metadata modelVersion="1.1.0">
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-core-asl</artifactId>
<versioning>
<latest>1.1.0</latest>
<release>1.1.0</release>
<versions>
<version>1.1.0</version>
</versions>
<lastUpdated>20120928142709</lastUpdated>
</versioning>
</metadata>
这表示版本范围可能选择的唯一合法版本是1.1.0
。作为此文件在检查jackson-core-lgpl
maven-metadata.xml
文件之前最有可能的样子的示例:
<metadata>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-core-lgpl</artifactId>
<version>0.9.8</version>
<versioning>
<versions>
<version>0.9.8</version>
<version>0.9.7</version>
<version>0.9.9</version>
<version>0.9.9-2</version>
<version>0.9.9-3</version>
<version>0.9.9-4</version>
<version>0.9.9-5</version>
<version>0.9.9-6</version>
<version>1.0.0</version>
...
如前所述,您可以对特定版本的Jackson进行硬编码,从而缩短版本分辨率并避免读取maven-metadata.xml
文件。
答案 1 :(得分:6)
正如yegor256所指出的那样,无论是谁最近遇到这个问题,都可能是由亚马逊AWS引起的。只需将你的aws-java-sdk更改为更新的版本(当前为1.3.20),问题就会消失。
答案 2 :(得分:2)
我应该指出这个文件的最新版本(maven-metadata.xml)一定是错的。 org.codehaus.jackson / jackson-core-asl的最新版本是1.9.9。
需要其他版本的jackson-core-asl的新的1.1.0版本的其他依赖项将会中断。正如我的场景所做的那样。我不得不手动更改maven-metadata.xml文件ok jackson-core-asl以使其正常工作
答案 3 :(得分:1)
Maven无法找到jackson-core-asl的依赖项,您需要在POM中包含以下内容
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-core-asl</artifactId>
<version>1.9.0</version>
</dependency>
如果已经包含,那么您可能必须指定存储库。查看maven repository