Maven 无法通过本地 Nexus 存储库解决依赖关系

问题描述 投票:0回答:4

为什么当使用我们本地的 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 不存在。
我看到我的本地 Nexus 存储库中仅存在
icu4j-4.6.pom

Maven 项目已通过我的本地 Nexus maven 存储库从多个公共存储库成功下载了许多 jar 文件,除了
icu4j-4.6.jar

类似问题描述于 使用 Nexus 设置缺少 Maven 依赖项

icu4j-4.6.jar
未显示在搜索列表中。搜索列表中仅显示
icu4j-4.6.pom
。我不认为是快照 VS 发布问题,因为
icu4j-4.6.jar
似乎是发布 jar。

我不明白为什么我只遇到问题

icu4j-4.6.jar

它会被错误地缓存在我的本地 Maven 或 Nexus Maven 存储库上吗?
如果缓存不正确,如何清理本地maven或nexus maven存储库?

maven nexus dependency-management sonatype icu4j
4个回答
0
投票

nexus 存储库是否有可能停止响应一段时间?您可以尝试 mvn -X (或 -d?) 来获取有关正在发生的情况的详细信息。您也可以尝试配置替代存储库。


0
投票

也许您还没有从 Maven Central 启用远程索引下载。这可以解释为什么只有 POM 文件出现在您的本地搜索中(通过代理存储库下载的唯一文件)。

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


0
投票
尝试将 -U 添加到您的 mvn 参数中以强制更新本地存储库。

您的存储库中也可能有损坏的元数据。在这种情况下,请从存储库的缓存中删除该工件并让它刷新。


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

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

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

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

3)运行 mvn clean -U

© www.soinside.com 2019 - 2024. All rights reserved.