β

【原创】完美解决IntelliJ IDEA无法更新maven索引的问题

leeon | 分享未来 1487 阅读
楼主最近研究spring boot要用到maven,但是苦于intellij idea的maven依赖更新始终无法正常更新。老是提示:

java.lang.RuntimeException\: java.io.FileNotFoundException\: Resource nexus-maven-repository-index.properties does not exist

网上的解决方法通过代理科学上网的方式来做 https://blog.csdn.net/ziven2012/article/details/78132264,但是我这边使用xxnet无法正常请求。于是我想到通过搭建本地nexus仓库的方式来使intellij更新索引。

具体方式如下:

1. 不使用intellij 自带的maven,手动自己本地部署一个maven最新版本,然后配置maven的路径和setting.xml文件路径。如下图所示:

2. 请使用nexus oss 2.XX的版本,千万别用3.X的版本。

3. 手动下载索引的相关文件。假设nexux部署后sonatype目录在/work/opt/sonatype-work/ ,那么我们将索引文件放入中央仓库的.index目录下:/work/opt/sonatype-work/nexus/storage/central/.index
此目录必须包含如下索引文件:

4. 测试你的nexus服务器是否能访问此索引地址,比如我的nexus中央仓库路径为:http://192.168.1.8:8081/nexus/content/repositories/central/
那么你的索引文件路径则应该为:
http://192.168.1.8:8081/nexus/content/repositories/central/.index/nexus-maven-repository-index.gz

5. 接着最后一步很重要,要让intellij idea识别mirror镜像配置,告诉maven应该去哪个镜像下载更新索引文件。在第一步中我设定maven的配置文件在E:\apache-maven-3.5.3\conf\settings.xml ,因此我们要修改这个xml中mirror相关项。在mirrors的区域添加如下信息:
central
central maven
http://192.168.1.8:8081/nexus/content/repositories/central/
central

注意箭头处一定要是central类型镜像仓库。

6. 最后完美解决,其他网上的教程都不靠谱,这个更新起来速度倍儿快,而且还很稳定。其实做个做法你也可以通过搭建一个nginx来做,我这样做的目的是让intellij 自动集成本地的nexus仓库

作者:leeon | 分享未来
Share Future,Share Internet Technology

发表评论