2020-02-19 更新

阿里的镜像服务进行了改版,原先的 http://maven.aliyun.com/nexus/content/repositories/central 已经被变更为 https://maven.aliyun.com/repository/central

同时我发现阿里的这个仓库还缺失了索引的配置文件,所以没办法索引成功,但根据阿里的说法是可以构建成功的

$ wget https://maven.aliyun.com/repositories/central/.index/nexus-maven-repository-index.properties
--2020-02-19 16:57:55--  https://maven.aliyun.com/repositories/central/.index/nexus-maven-repository-index.properties
正在解析主机 maven.aliyun.com (maven.aliyun.com)... 59.110.251.10, 59.110.251.11, 182.92.29.53, ...
正在连接 maven.aliyun.com (maven.aliyun.com)|59.110.251.10|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 404 Not Found
2020-02-19 16:57:55 错误 404:Not Found。

那么需要修改 ~/.m2/settings.xml 文件中的 mirror 节点下阿里云镜像对应的节点

一、引子

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

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

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


二、然后就出问题了

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

<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中修改的那段代码替换成下面这个即可

<mirror>
  <id>nexus-aliyun</id>
  <mirrorOf>central</mirrorOf>
  <name>Nexus aliyun</name>
  <url>http://maven.aliyun.com/nexus/content/repositories/central</url>
</mirror>

(2020-02-19更新)

效果

*注:这个效果已经不会出现了,因为缺失了索引文件