我正在使用安装在本地计算机上的自己版本的 Nexus Web 应用程序存储库。我只为 Nexus 配置了一个存储库,即我存储快照的存储库:
http://localhost:8081/nexus/content/repositories/MySnapshots/
请注意,在安装 Nexus 之后,我删除了所有默认存储库并添加了我自己的存储库。(也许这是个坏主意?)
当我执行 mvn clean install 时,我注意到一些第 3 方工件是直接从远程存储库下载的。例如,这是构建的输出行之一:
Downloading: http://repo.maven.apache.org/maven2/com/sun/org/apache/xml/internal/resolver/...
奇怪的是,我看到其他工件正在通过我当地的 Nexus 最终到达工件:
Downloading: http://localhost:8081/nexus/content/repositories/MySnapshots/org/apache/maven/wagon/wagon-provider-api...
请注意,下载 url 的第一部分是我的本地存储库,但MySnapshots之后的所有内容都来自 apache.org。
这几乎就像我的 Nexus 存储库充当 maven.apache.org 的代理,用于下载一些工件,但对于其他人来说,它直接进入源代码。
谁能告诉我为什么会这样?
如果我的所有构建一直都成功,我不会为此烦恼太多,但有时,当我编译大型项目时,由于无法找到工件而导致构建失败。
例如,当我尝试构建另一个依赖于 eclipse jdt 的项目时,我收到以下错误:
Downloading: http://localhost:8081/nexus/content/repositories/MySnapshots/eclipse/jdt/core/eclipse.jdt.core
Could not find artifact eclipse.jdt.core:eclipse.jdt.core
我不确定这是否意味着我的 Nexus 配置不正确,或者是否真的没有工件 eclipse.jdt.com。如果下载没有通过我的本地 Nexus 存储库,我会调查 pom/settings.xml 文件。相反,这让我想知道这是否是由于我的 Nexus 配置。
如果您想查看我的 Maven 的 settings.xml 和我正在构建的项目的 pom 文件,您可以在此处查看它们:
设置.xml:http: //pastebin.com/NvLr5bEA
pom.xml: http: //pastebin.com/PJ0P3RaK