为什么当使用我们本地的 Nexus Repository 配置时,Maven 无法解决与 mavencentral 的依赖关系?
我设置了一个内部 Sonatype Nexus 存储库并配置 Maven 来检查我的本地 Nexus,而不是直接从公共存储库获取工件。 我们的项目能够下载最多的工件,除了 Maven 中心的一个工件。 这是构建错误:
Failed to execute goal on project shindig-gadgets:
Could not resolve dependencies for project org.apache.shindig:shindig-gadgets:jar:3.0.0-SNAPSHOT: Could not find artifact com.ibm.icu:icu4j:jar:4.6
in nexus (http://my_nexus_repository:8081/nexus/content/groups/public) -> [Help 1]
我看到
icu4j-4.6.jar
确实存在于 Maven 中央存储库中。在我的本地 Nexus 存储库中,这个 jar 不存在。icu4j-4.6.pom
。icu4j-4.6.jar
。
类似问题描述于 使用 Nexus 设置缺少 Maven 依赖项
icu4j-4.6.jar
未显示在搜索列表中。搜索列表中仅显示 icu4j-4.6.pom
。我不认为是快照 VS 发布问题,因为 icu4j-4.6.jar
似乎是发布 jar。
我不明白为什么我只遇到问题
icu4j-4.6.jar
。nexus 存储库是否有可能停止响应一段时间?您可以尝试 mvn -X (或 -d?) 来获取有关正在发生的情况的详细信息。您也可以尝试配置替代存储库。
也许您还没有从 Maven Central 启用远程索引下载。这可以解释为什么只有 POM 文件出现在您的本地搜索中(通过代理存储库下载的唯一文件)。
可能还有另一个问题导致 jar 本身下载失败......我想尝试一次解决一个问题:-)
您的存储库中也可能有损坏的元数据。在这种情况下,请从存储库的缓存中删除该工件并让它刷新。
但是,如果您在 Nexus 上看到 pom,这通常是在代理存储库中的工件未正确缓存时发生的。解决方法是
1) 浏览到代理存储库中的组件。2) 使存储库的缓存无效并重新索引 Nexus 存储库。
3)运行 mvn clean -U