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更新)
*注:这个效果已经不会出现了,因为缺失了索引文件