忽然发现idea的maven没有依赖补全,搜索也找不到包。搜索下发现需要更新索引

然而Remote索引更新的时候永远会Error(图里已经更新成功了)

试验并搜索了下发现:

  • idea显示的url永远都是https://repo.maven.apache.org/maven2,但实际上连接的是settings.xml里指定的源

  • 更新索引实际上就是下载两个文件

1
2
https://repo1.maven.org/maven2/.index/nexus-maven-repository-index.properties
https://repo1.maven.org/maven2/.index/nexus-maven-repository-index.gz
  • 如果settings.xml中没有添加镜像源,直接使用默认源的话会因为网络问题导致更新失败,即使挂了代理也会下一半断掉,然后又要重新来,试了很多次都没成功

  • 国内的maven镜像源似乎只剩阿里了,然而神奇的阿里镜像居然没有索引文件…所以会直接更新失败

解决方法,参考IntelliJ IDEA中Maven插件无法更新索引之解决办法里利用本地Tomcat作为索引下载服务器的思路,因为现在官方源使用https了,所以文章里的方法没法直接用,但思路是通用的:

  • 先用浏览器将上面的两个文件下载下来(可以断点续传),扔到apache或者tomcat根目录下的/maven/.index/中。本地起一个服务器

  • 设置镜像源为

1
2
3
4
5
6
7
8
</mirrors>
<mirror>
<id>localhost</id>
<mirrorOf>*</mirrorOf>
<name>my maven</name>
<url>http://127.0.0.1/maven</url>
</mirror>
</mirrors>
  • 这时重启idea再update就可以很快的下载了。nexus-maven-repository-index.gz解压后有足足6G,所以下载完成后更新索引也需要等一段时间

好了水文完毕…