我有两台电脑。一个人总是从http://repo1.maven.org下载。另一个从http://repo.maven.apache.org下载。
今天,我在第一台计算机上得到了这样的校验和错误。
[WARNING] Checksum validation failed, expected but is 63801e851fe885601a0bd0eceb6501f7db37e47e for http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-archiver/1.0-alpha-6/plexus-archiver-1.0-alpha-6.pom
在使用http://repo.maven.apache.org正常工作的第二台计算机上,没有校验和错误。
我一直在尝试将http://repo1.maven.org更改为http://repo.maven.apache.org,但我无法找到更改位置。
我也想知道为什么来自同一网络的不同计算机有不同的回购下载并永远坚持使用该回购。
答案 0 :(得分:5)
Apache Maven 3.0.4改变了这一点,相关问题是MNG-5151
答案 1 :(得分:2)
Default locations您的设置文件是:
settings.xml文件可能存在两个位置:
- Maven安装:$ M2_HOME / conf / settings.xml
- 用户的安装:$ {user.home} /.m2 / settings.xml
M2_HOME
是maven安装目录的路径。默认值可以在maven installation instructions:
C:\Program Files\Apache Software Foundation\apache-maven-3.1.0
/usr/local/apache-maven/apache-maven-3.1.0
或打开命令提示符/终端并键入:
echo %M2_HOME%
echo $M2_HOME
要更改中央存储库的位置mirror can be defined。打开settings.xml
并添加:
<settings>
...
<mirrors>
<mirror>
<id>myMirrorId</id>
<name>mirror of a central repo</name>
<url>http://server</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
...
</settings>
现在,当您使用调试输出(-X
)从项目根文件夹运行maven时,您应该在控制台输出的开头看到:
[DEBUG] Using mirror myMirrorId (http://server) for central (http://repo.maven.apache.org/maven2).
默认的中央仓库有id
核心,这就是为什么这是mirrorOf
代码的价值。我的默认中央回购是您要设置的回购。
我也想知道为什么来自同一网络的不同计算机有不同的回购下载。
如果您评论用户设置文件中的所有内容(只保留外部settings
标记)并且运行默认全局设置文件(基本上为空):
mvn help:effective-settings
将转储几乎为空的设置。当构建项目时,maven仍然知道中央仓库的位置,因为每个pom文件都继承自super pom,并且是定义默认中央仓库URL的地方:
<repositories>
<repository>
<id>central</id>
<name>Central Repository</name>
<url>http://repo.maven.apache.org/maven2</url>
<layout>default</layout>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
超级pom位于$M2_HOME/lib/maven-model-builder-<VERSION>.jar
下的/org/apache/maven/model/pom-4.0.0.xml
。
正如Robert Scholte所说,从3.0.4开始,默认网址已从http://repo1.maven.org/maven2
更改为http://repo.maven.apache.org/maven2