Maven:为什么我的电脑总是从http://repo1.maven.org下载?

时间:2013-08-27 16:59:20

标签: maven

我有两台电脑。一个人总是从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,但我无法找到更改位置。

我也想知道为什么来自同一网络的不同计算机有不同的回购下载并永远坚持使用该回购。

2 个答案:

答案 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

中找到
  • win xp / 2k:C:\Program Files\Apache Software Foundation\apache-maven-3.1.0
  • unix based:/usr/local/apache-maven/apache-maven-3.1.0

或打开命令提示符/终端并键入:

  • win xp / 2k:echo %M2_HOME%
  • unix based: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