gpt4 book ai didi

maven - settings.xml 中 Maven 存储库的顺序

转载 作者:行者123 更新时间:2023-12-04 12:50:03 26 4
gpt4 key购买 nike

我有一个 settings.xml,如下所示:-

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<servers>
<server>
<id>nReleases</id>
<username>test</username>
<password>test123</password>
</server>
<server>
<id>nSnapshots</id>
<username>test</username>
<password>test123</password>
</server>
</servers>

<profiles>
<profile>
<id>space</id>
<repositories>
<repository>
<id>central</id>
<url>http://repo1.maven.org/maven2</url>
</repository>
<repository>
<id>nReleases</id>
<name>Releases</name>
<url>http://someserver/repository/maven-releases/</url>
</repository>
<repository>
<id>nSnapshots</id>
<name>Snapshots</name>
<url>http://someserver/repository/maven-snapshots/</url>
</repository>
</repositories>
</profile>
</profiles>

<activeProfiles>
<activeProfile>space</activeProfile>
</activeProfiles>
</settings>

我希望 maven 首先检查 repo1.maven.org,然后只查看 someserver。有人可以让我知道这是如何实现的吗?

我正在使用 Maven 3.3.9。

我已经完成了这个question并尝试更改配置文件中声明 repos 的顺序,但没有帮助。

<profile>
<id>space</id>
<repositories>
<repository>
<id>nReleases</id>
<name>Releases</name>
<url>http://someserver/repository/maven-releases/</url>
</repository>
<repository>
<id>nSnapshots</id>
<name>Snapshots</name>
<url>http://someserver/repository/maven-snapshots/</url>
</repository>
<repository>
<id>central</id>
<url>http://repo1.maven.org/maven2</url>
</repository>
</repositories>
</profile>

在执行 mvn clean install 时记录

tuk-MacBook-Pro-4:camel tuk$ mvn clean install
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building camel 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
Downloading: http://someserver/repository/maven-releases/org/apache/camel/camel-redis/2.16.3/camel-redis-2.16.3.pom
Downloading: http://someserver/repository/maven-snapshots/org/apache/camel/camel-redis/2.16.3/camel-redis-2.16.3.pom

最佳答案

设置中存储库的顺序在 Maven 2 中没有明确指定,但从 Maven 3 开始(以及 MNG-4400 的修复),存储库总是按照它们在设置中的声明顺序进行尝试。

可能发生的情况,以及可能导致问题的原因是,Maven 尝试了一个存储库,但失败了,并在您的本地存储库中存储了它尝试但失败的事实。这导致创建 .lastUpdated本地存储库中的文件,存储此信息。结果是 Maven 不会重新尝试从它知道过去下载失败的存储库下载依赖项。因此,当您启动一个命令并且项目需要一个不存在于您的本地存储库中的 Artifact 时,Maven 仍将按照其声明的顺序尝试存储库,但它会跳过它知道已经失败的那些。

但是你可以通过传递 the -U flag 来强制它绕过这个机制在命令行上。它强制 Maven 更新发布和快照依赖项,而不查看 .lastUpdated 文件。这样,它将重试每个事件的远程存储库。

关于maven - settings.xml 中 Maven 存储库的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40201803/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com