我正在使用 maven 3.0(带有 nexus 设置)来构建我的项目并且正在构建失败:
Caused by: org.sonatype.aether.transfer.ArtifactNotFoundException: Could not find artifact directory:apacheds-core:jar:${apacheds_version} in central (http://localhost:8081/nexus/content/repositories/central)
at org.sonatype.aether.connector.wagon.WagonRepositoryConnector$4.wrap(WagonRepositoryConnector.java:945)
at org.sonatype.aether.connector.wagon.WagonRepositoryConnector$4.wrap(WagonRepositoryConnector.java:940)
我的基本困惑是:当 maven 在 pom.xml 中看到依赖项时,它如何在远程存储库中查找工件?
我目前的理解是:
它将首先查看本地 repo ( .m2/repository )。
如果在那里没有找到,那么它将尝试在存储库标签下的 settings.xml 中指定的存储库中搜索。 问题:它是否尝试所有提到的存储库。还是只是第一个?下面我提到了 5 个 repos:maven 是逐个搜索所有这些还是只搜索第一个?
<repositories>
<repository>
<id>central</id>
<url>http://localhost:8081/nexus/content/repositories/central</url>
</repository>
<repository>
<id>remote</id>
<url>http://localhost:8081/nexus/content/repositories/remote-proxy-nexus-central</url>
</repository>
<repository>
<id>thirdParty</id>
<url>http://localhost:8081/nexus/content/repositories/thirdparty</url>
</repository>
<repository>
<id>codehaus</id>
<url>http://localhost:8081/nexus/content/repositories/codehaus-snapshots</url>
</repository>
<repository>
<id>public</id>
<url>http://localhost:8081/nexus/content/groups/public</url>
</repository>
</repositories>
我最后的困惑是关于 settings.xml 中的代理部分。这些位置是什么:
<proxy>
<id>remote-proxy-nexus-central</id>
<active>true</active>
<protocol>http</protocol>
<host>repo1.maven.org/maven2</host>
<port>8080</port>
</proxy>