CosPotato's Blog

使用阿里云Maven镜像的正确姿势

一、引子

Java的难免要接触Maven,又或者Gradle(反正都用着Maven的库)。BUT!http://repo1.maven.org/maven2访问起来慢到吃翔,每同步一次索引(大约440MB+)简直就是一个噩梦,曾经为了做Minecraft的Mod,光构建环境花掉了我整整7个小时,当时人年轻,就那么傻等着。

再后来,我知道了可以用镜像站点,最开始用的是开源中国的镜像站,但是就在2016年的7月开源中国因为和服务商的合同到期,所以关闭了他们的镜像库(新闻)。

经过了一段真空期,阿里云的Maven镜像库悄咪咪的上线了!!!


二、然后就出问题了

网上各位博主通常给出的使用阿里云镜像库的方法是修改~/.m2/settings.xml,在mirrors节点下添加

1
2
3
4
5
6
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

并且标榜亲测可用

但是!我在使用Idea的过程中出问题了,因为怎么也同步不到索引,但是正常导库是快到飞起的。
同步索引失败

作为强迫症,看到这里红彤彤的,不能忍!

放狗!搜!

终于让我发现这个nexus-maven-repository-index.properties文件存在一个隐藏的文件夹里,也就是到http://repo1.maven.org/maven2/.index/nexus-maven-repository-index.properties这个地址去获取索引,然后下载nexus-maven-repository-index.gz

接着我尝试访问阿里云的这个文件夹。
访问错误

在逗我?

仓库列表

我不甘心,阿里云的同僚们应该不会这么ZZ吧,应该不会,我溜达到仓库列表,抱着试一试的心态进到了Central这个仓库

文件
下载

哦!可以了!

三、最终解决方案

settings.xml中修改的那段代码替换成下面这个即可

1
2
3
4
5
6
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central</url>
</mirror>

效果