如果仓库X可以提供仓库Y存储的所有内容,那么就可以认为X是Y的一个镜像。举个例子http://maven.aliyun.com/nexus/content/groups/public是中央仓库在中国的镜像,由于地理位置的因素该镜像往往能提供比中央仓库更快。因此可以配置maven使用该镜像来替代中央仓库。编辑settings.xml如下:
<mirrors>
<mirror>
<id>aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>
<mirror>
<id>aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>
为了满足一些复杂的需求,maven还支持更高级的镜像配置:
<mirrorOf>*</mirrorOf>:匹配所有远程仓库。
<mirrorOf>external:*</mirrorOf>:匹配所有远程仓库,使用localhost的除外,使用file://协议的除外,也就是说匹配所有不在本机上的远程仓库。
<mirrorOf>repo1,repo2</mirrorOf>:匹配仓库repo1,repo2使用逗号分隔多个远程仓库。
<mirrorOf>*,!repo1</mirrorOf>:匹配所有远程仓库,repo1除外,使用感叹号将仓库从匹配中排除。