【发布时间】: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 Repositories 的 index 并通过展开树导航器手动找到这个特定的工件 saxon-dom 版本 9.0。它位于文件夹net\sf\saxon。
所以我的结论是,Nexus 确实没有在做它声称正在做的事情。它不能帮助我管理依赖项——我必须手动解决这些依赖项。
结果与不断处理罐子集合完全一样。我必须手动下载它们并将它们放在类路径中才能执行构建。
作为存储库管理器,它看起来不是很有用。
【问题讨论】:
-
"public" 是一个存储库组。我将“JBoss Maven2”存储库添加到该组,这将扩展供下载的工件集。或者,创建一个新的存储库组。欲了解更多信息,我建议:books.sonatype.com/nexus-book/reference/repository-groups.html
标签: nexus