只用一招,让你Maven依赖下载速度快如闪电

一、背景

  众所周知,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下载依赖速度慢的问题。

三、总结

  我们遇见了问题,要懂得去站在巨人的肩膀上。去寻找别人解决方案。还有就是一个好的企业不单单只为自己的员工谋福利,更为这个社会做出贡献,我很欣赏阿里这样的有情怀的公司!遇见问题要想着如何彻底的解决问题,而不是将问题隐藏而束之高阁~

posted @ 2017-09-21 09:52  阿豪聊干货  阅读(6482)  评论(20编辑  收藏  举报