maven无法通过我的本地nexus存储库解析依赖关系

时间:2011-11-11 01:49:34

标签: maven nexus sonatype

我已经设置了一个内部的Sonatype Nexus存储库,并配置maven来检查我的本地Nexus,而不是直接从公共存储库获取工件。 http://www.sonatype.com/books/nexus-book/reference/config-sect-intro.html

我们的项目能够下载除Maven central中的一个工件之外的大多数工件。

以下是构建错误: 无法在项目shindig-gadgets上执行目标:无法解析项目org.apache.shindig的依赖项:shindig-gadgets:jar:3.0.0-SNAPSHOT:找不到工件com.ibm.icu:icu4j:jar:4.6 in nexus(http://my_nexus_repository:8081/nexus/content/groups/public) - > [帮助1]

我看到icu4j-4.6.jar确实存在于Maven中央存储库中。在我的本地nexus存储库中,它不存在。我看到我的本地nexus存储库中只存在icu4j-4.6.pom。

这与我的nexus存储库设置完全不同。 maven项目已成功通过我的本地nexus maven存储库从icu4j-4.6.jar下载了多个公共存储库中的大量jar文件。

我不明白为什么我只遇到icu4j-4.6.jar的问题。它会被错误地缓存在我的本地maven或nexus maven存储库中吗? 如果它被错误地缓存,我该如何清理本地maven或nexus maven存储库?

类似的问题描述于 Missing maven dependency using nexus setup icu4j-4.6.jar未显示在搜索列表中。只有icu4j-4.6.pom出现在搜索列表中。我认为不是Snapshot VS Release问题,因为icu4j-4.6.jar似乎是发布jar。

4 个答案:

答案 0 :(得分:0)

nexus repo有可能暂停了一段时间吗?您可以尝试使用mvn -X(或-d?)来获取有关正在进行的操作的详细信息。您也可以尝试配置备用仓库。

答案 1 :(得分:0)

也许你没有从Maven Central启用remote index downloads。这可以解释为什么只有POM文件出现在本地搜索中(唯一通过代理仓库下载的文件)。

可能还有另一个问题导致jar本身的下载失败....我想尝试一次解决一个问题: - )

答案 2 :(得分:0)

尝试在您的mvn参数中添加-U以强制更新本地存储库。

您还可能在repo中损坏了元数据。在这种情况下,从repo的缓存中删除该工件并让它刷新。

答案 3 :(得分:0)

如果有问题的工件从代理存储库中正确缓存,使用mvn -U将解决问题

但是,如果您在nexus上看到pom,则通常会在代理存储库中的工件未正确缓存时发生。解决方法是

  

1)浏览到代理存储库中的组件。

     

2)使存储库的缓存无效并重新索引Nexus存储库。

     

3)运行mvn clean -U