众所周知,Maven对于依赖的管理让我们程序员感觉爽的不要不要的,但是由于这货是国外出的,所以在我们从中央仓库下载依赖的时候,速度如蜗牛一般,让人不能忍,并且这也是大多数程序员都会遇到的问题。今天我们就教大家一招来完美解决这个问题,从此远离下载依赖速度极慢的困扰。
二、下载过慢的原因以及解决办法的原理- 因为我们知道我们是从maven的中央仓库下载我们需要的依赖,中央仓库服务器又在国外,所以才会下载缓慢,那我们就可以使用镜像来解决下载依赖过慢的问题。
- 镜像:如果仓库X可以提供仓库Y存储的所有内容,那么就可以认为X是Y的一个镜像。换句话说,任何一个可以从仓库Y获得的构件,都能够从它的镜像中获取。
- maven安装目录下的conf文件夹下setting.xml中的<mirrorOf></mirrorOf>元素便是用来配置镜像的。
- <mirrorOf></mirrorOf>标签里面放置的是要被镜像的Repository ID。为了满足一些复杂的需求,Maven还支持更高级的镜像配置:
<mirrorOf>*</mirrorOf>
: 匹配所有远程仓库<mirrorOf>repo1,repo2</mirrorOf>
: 匹配仓库repo1和repo2,使用逗号分隔多个远程仓库<mirrorOf>*,!repo1</miiroOf>
: 匹配所有远程仓库,repo1除外,使用感叹号将仓库从匹配中排除
阿里为我们提供了公共的Maven镜像库,我们就来配置它作为我们的中央仓库的镜像(当然你也可以指定别的Maven镜像库,比如OSChina的等,但是阿里的镜像库是目前我所知道的速度最快的一个)。
我们只需要在我们的本地maven安装位置下的conf文件夹下的setting.xml中的<mirrors>镜像集合中添加如上的中央仓库的镜像就可以解决maven下载依赖速度慢的问题:
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
注意 :由于镜像仓库完全屏蔽了被镜像仓库,当镜像仓库不稳定或者停止服务的时候,Maven仍将无法访问被镜像仓库,因而将无法下载构件。
四、总结 我们遇见了问题,要懂得去站在巨人的肩膀上。去寻找别人解决方案。还有就是一个好的企业不单单只为自己的员工谋福利,更为这个社会做出贡献,我很欣赏阿里这样的有情怀的公司!遇见问题要想着如何彻底的解决问题,而不是将问题隐藏而束之高阁~
热门评论
有这些大公司的支持,确实很好
写得挺好 楼主辛苦了