在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 回购中。
我还可以做的是导航公共存储库的索引,并通过展开来手动查找此特定工件saxon-dom
版本9.0
树导航器。它位于文件夹net\sf\saxon
。
所以我的结论是,Nexus完全不做它声称正在做的事情。它无法帮助我管理依赖项 - 我必须手动解决这些问题。
什么结果就像经常玩杂耍的罐子一样。我必须手动下载它们并将它们放在类路径上才能执行构建。
作为Repository Manager,它看起来不太有用。
答案 0 :(得分:2)
事实证明,我需要围绕Nexus处理缺少的依赖关系的方式包围我的大脑。
这个问题我认为工件saxon-dom
曾经是回购的一部分,但在某些时候被删除了。见https://repository.jboss.org/nexus/content/groups/public/net/sf/saxon/saxon-dom/
所以仍然有一些元数据但不是jar和pom。
当我搜索神器时,Nexus会根据此元数据找到它。在搜索结果中,我可以看到jar和pom。
现在我错误地认为工件被发现并且在回购中。情况并非如此,因为如果我们尝试下载jar,您会看到类似于下面的消息。
所以Nexus缓存404,事实上它无法找到神器。但是在UI中完全不清楚结果是缓存的404。