我已经设置了一个内部的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。
答案 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