一、背景
众所周知,Maven对于依赖的管理让我们程序员感觉爽的不要不要的,但是由于这货是国外出的,所以在我们从*仓库下载依赖的时候,速度如蜗牛一般,让人不能忍,并且这也是大多数程序员都会遇到的问题。今天我们就教大家一招来完美解决这个问题,从此远离下载依赖速度极慢的困扰。
二、原理及解决方式
1.其实maven为了解决远程依赖下载慢的问题,提供了我们可以使用镜像来进行解决。
2.镜像:如果仓库X可以提供仓库Y存储的所有内容,那么就可以认为X是Y的一个镜像。换句话说,任何一个可以从仓库Y获得的构件,都胡够从它的镜像中获取。
3.maven安装程序conf文件夹下setting.xml中的<mirrorOf></mirrorOf>元素
<mirrorOf></mirrorOf>标签里面放置的是要被镜像的Repository ID。为了满足一些复杂的需求,Maven还支持更高级的镜像配置:
- <mirrorOf>*</mirrorOf>
匹配所有远程仓库。
- <mirrorOf>repo1,repo2</mirrorOf>
匹配仓库repo1和repo2,使用逗号分隔多个远程仓库。
- <mirrorOf>*,!repo1</miiroOf>
匹配所有远程仓库,repo1除外,使用感叹号将仓库从匹配中排除。
4.注意
由于镜像仓库完全屏蔽了被镜像仓库,当镜像仓库不稳定或者停止服务的时候,Maven仍将无法访问被镜像仓库,因而将无法下载构件。
5.阿里为我们提供了公共的Maven镜像库,我们就来配置它作为我们的*仓库的镜像(当然你也可以指定别的Maven镜像库,比如OSChina的,但是阿里的镜像库是目前我所知道的速度最快的一个)
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
我们只需要在我们的本地maven安装位置下的conf文件夹下的setting.xml中的<mirrors>镜像集合中添加如上的*仓库的镜像就可以解决maven下载依赖速度慢的问题。