Java 如何在Maven settings.xml中设置存储库的顺序
我的settings.xml中有3个存储库,因为我需要它们中的工件。只要找不到依赖项,Maven就会尝试Java 如何在Maven settings.xml中设置存储库的顺序,java,maven,dependency-management,Java,Maven,Dependency Management,我的settings.xml中有3个存储库,因为我需要它们中的工件。只要找不到依赖项,Maven就会尝试 Downloading: http://some.server/mvn2repo/releases/org/apache/lucene/lucene-core/2.9.1/... [INFO] Unable to find resource 'org.apache.lucene:lucene-core:pom:2.9.1' in repository Downloading: http://
Downloading: http://some.server/mvn2repo/releases/org/apache/lucene/lucene-core/2.9.1/...
[INFO] Unable to find resource 'org.apache.lucene:lucene-core:pom:2.9.1' in repository
Downloading: http://some.server/mvn2repo/3rdParty/org/apache/lucene/lucene-core/2.9.1/...
[INFO] Unable to find resource 'org.apache.lucene:lucene-core:pom:2.9.1' in repository
Downloading: http://repo1.maven.org/maven2/org/apache/lucene/lucene-core/2.9.1/lucene-core-2.9.1.pom
<success>
我的settings.xml
<profiles>
<profile>
<id>space</id>
<repositories>
<repository>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>s1-releases</id>
<name>System One Releases</name>
<url>http://some.server/mvn2repo/releases</url>
</repository>
<repository>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>s1-3rdParty</id>
<name>System One 3rd Party Releases</name>
<url>http://some.server/mvn2repo/3rdParty</url>
</repository>
<repository>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
<id>central</id>
<url>http://repo1.maven.org/maven2</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
<id>central</id>
<url>http://repo1.maven.org/maven2</url>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>space</activeProfile>
</activeProfiles>
空间
真的
假的
s1释放
系统一发布
http://some.server/mvn2repo/releases
真的
假的
s1-3第三方
System One第三方发布
http://some.server/mvn2repo/3rdParty
真的
真的
中心的
http://repo1.maven.org/maven2
真的
真的
中心的
http://repo1.maven.org/maven2
空间
据我所知,pom.xml中存储库的顺序也将决定存储库访问的顺序
至于在settings.xml中配置存储库,我已经读到存储库的顺序与访问存储库的顺序正好相反
有人在这里解释了这种好奇:也可以考虑使用一个存储库管理器,例如Nexus并配置所有的存储库。 在我的例子中没有一个答案是正确的。顺序似乎取决于标记的字母顺序,这是一个任意字符串。因此,该强制回购搜索订单:
<repository>
<id>1_maven.apache.org</id>
<releases> <enabled>true</enabled> </releases>
<snapshots> <enabled>true</enabled> </snapshots>
<url>https://repo.maven.apache.org/maven2</url>
<layout>default</layout>
</repository>
<repository>
<id>2_maven.oracle.com</id>
<releases> <enabled>true</enabled> </releases>
<snapshots> <enabled>false</enabled> </snapshots>
<url>https://maven.oracle.com</url>
<layout>default</layout>
</repository>
1_maven.apache.org
真的
真的
https://repo.maven.apache.org/maven2
违约
2_maven.oracle.com
真的
假的
https://maven.oracle.com
违约
你的链接看起来很有希望,我试着颠倒顺序,但没用。嗯,奇怪。您使用的是哪一版本的Maven?事实上,在一个新项目中,顺序是1)活动概要文件描述(反转),然后是2)存储库asc。因此,“中央”应该是最后激活配置文件中的第一个回购,而不是相反的顺序。您应该指定本地回购为tagLet's vote中针对以下问题的第一个回购:只需选择一个工作回购并仅配置它…@HendyIrawan似乎MNG-4400已通过maven 3.0 FWIw修复。这是问题更新问题链接的更新链接,为什么您不能使用它?如果这是因为您无法维护自己的服务器,那么您可以尝试一下,几分钟后您将获得一个cloud Maven repo并运行。它一定是某个特定的Maven版本(有bug?)。我有maven 3.6,这是公认答案中列出的顺序。是的,我认为错误是这样的:在maven 3.0之后,它以正确的顺序读取
<repository>
<id>1_maven.apache.org</id>
<releases> <enabled>true</enabled> </releases>
<snapshots> <enabled>true</enabled> </snapshots>
<url>https://repo.maven.apache.org/maven2</url>
<layout>default</layout>
</repository>
<repository>
<id>2_maven.oracle.com</id>
<releases> <enabled>true</enabled> </releases>
<snapshots> <enabled>false</enabled> </snapshots>
<url>https://maven.oracle.com</url>
<layout>default</layout>
</repository>