【问题标题】:Nexus error "Could not find artifact" when the same Nexus displays artifact metadata当同一个 Nexus 显示工件元数据时,Nexus 错误“找不到工件”
【发布时间】:2016-04-24 21:33:34
【问题描述】:

在 Sonatype.com 网站上,我可以阅读以下内容

Nexus 是一个存储库管理器。它允许您代理、收集和 管理你的依赖关系,这样你就不会经常玩弄 JAR 集合。它使分发您的软件变得容易。 在内部,您配置构建以将工件发布到 Nexus 和 然后它们可供其他开发人员使用。你得到好处 拥有自己的“中心”,没有更简单的方法 合作。

关于“不断处理 JAR 集合”的部分我觉得很有趣。

根据我的经验,这正是 Nexus 流程的样子。

举个例子。我的构建失败并显示消息

[ERROR] Failed to execute goal on project myproject: Could not resolve dependencies for project myproject:jar:1.0.0-SNAPSHOT: Could not find artifact net.sf.saxon:saxon-dom:jar:9.0 in nexus (https://mynexus:8443/nexus/content/groups/public/) 

因此,https://mynexus:8443/nexus/content/groups/public/ 的 Nexus 存储库应该不包含此工件。

使用 Nexus Web 界面,我可以搜索并找到这个特定的工件。它位于 Jboss Maven2 存储库中。

我还可以做的是导航 Public Repositoriesindex 并通过展开树导航器手动找到这个特定的工件 saxon-dom 版本 9.0。它位于文件夹net\sf\saxon

所以我的结论是,Nexus 确实没有在做它声称正在做的事情。它不能帮助我管理依赖项——我必须手动解决这些依赖项。

结果与不断处理罐子集合完全一样。我必须手动下载它们并将它们放在类路径中才能执行构建。

作为存储库管理器,它看起来不是很有用。

【问题讨论】:

标签: nexus


【解决方案1】:

事实证明,我需要思考 Nexus 处理缺失依赖项的方式。

这个问题我认为工件 saxon-dom 曾经是 repo 的一部分,但在某个时候被删除了。见https://repository.jboss.org/nexus/content/groups/public/net/sf/saxon/saxon-dom/

所以仍然有一些元数据,但没有 jar 和 pom。

当我搜索工件时,Nexus 会根据此元数据找到它。在搜索结果中,我可以看到 jar 和 pom。

现在我错误地认为工件已在 repo 中找到。情况并非如此,因为如果我们尝试下载 jar,您会看到类似于下面的消息。

所以 Nexus 缓存了 404,因为它无法找到工件。但在 UI 中完全不清楚结果是缓存的 404。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-09
    • 2018-03-17
    • 2018-09-12
    • 2019-03-30
    • 2013-03-07
    • 2013-09-10
    • 1970-01-01
    相关资源
    最近更新 更多