首先mvn这个东西和ant差不多。都是编译工程+打包的东西。 很多开源软件都用。这些开源软件里面有大量的第三方依赖。很可惜,这些第三方依赖很有可能在很多个repository中。查找StackOverFlow发现大多回答是这样的:
在conf/setting.xml中写入:
<mirrors>
<mirror>
<id>UK</id>
<name>UK Central</name>
<url>http://uk.maven.org/maven2</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
这样就加入了一个。
<mirrors>
<mirror>
<id>UK</id>
<name>UK Central</name>
<url>http://uk.maven.org/maven2</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>soap</id>
<name>internal nexus repository</name>
<url>http://www.soapui.org/repository/maven2</url>
<mirrorOf>!UK,*</mirrorOf>
</mirror>
</mirrors>
这样就加入俩。
这是StackOverflow的解答。那么如果加入三个是否是下面这样:
<mirrors>
<mirror>
<id>UK</id>
<name>UK Central</name>
<url>http://uk.maven.org/maven2</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>soap</id>
<name>internal nexus repository</name>
<url>http://www.soapui.org/repository/maven2</url>
<mirrorOf>!UK,*</mirrorOf>
</mirror>
<mirror>
<id>nightlabs</id>
<name>internal nexus repository</name>
<url>http://dev.nightlabs.org/maven-repository/maven.jahia.org-cache/</url>
<mirrorOf>!UK,!soap,*</mirrorOf>
</mirror>
</mirrors>
对不起...答案是错误的.....
所以三个及以上的做法是这样的:
<mirrors>
<mirror>
<id>UK</id>
<name>UK Central</name>
<url>http://uk.maven.org/maven2</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>nexus-central</id>
<name>internal nexus repository</name>
<url>http://nexus.corp.com/nexus/content/repositories/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>soap</id>
<name>internal nexus repository</name>
<url>http://www.soapui.org/repository/maven2</url>
<mirrorOf>!UK,central</mirrorOf>
</mirror>
<mirror>
<id>nightlabs</id>
<name>internal nexus repository</name>
<url>http://dev.nightlabs.org/maven-repository/maven.jahia.org-cache/</url>
<mirrorOf>!UK,!soap,central</mirrorOf>
</mirror>
</mirrors>
要把*改为central, 因为mvn碰到*就后边的都不会继续做下去了。虽然apache的官方文档说,只能有一个central,但其实可以有多个加上!mirrorId的central.