IntelliJ IDEA更新Maven远程仓库索引
因为某些原因,在 IDEA
下载 Maven
索引总是特别慢,有时候等待它下载好几个小时,然后突然抽风下载失败,再下载又要重新下了,所以这里介绍从远程下载索引到本地更新的方法。
本文默认你已经在 IDEA
配置好了 Maven
和 tomcat
环境,并且在 IntelliJ IDEA
已经关联了配置好的 Maven
。
原理
IDEA
更新索引默认从中央仓库下载,如果在国内,下载非常慢。配置了阿里云镜像,就会从配置的镜像根目录 /.index/
找索引文件,但是阿里云并没有提供索引服务,所以如果配置了阿里云镜像,再更新索引会报错。
所以我们搭建 tomcat
本地服务器,再把本地服务器伪装成阿里云镜像服务器,将索引文件放到本地服务器,再从中央仓库下载索引文件放到服务器里,这样 IDEA
就会从本地服务器下载索引来更新。
步骤
-
打开
Maven
的配置文件 :Maven根目录/conf/settings.xml
,先把自己添加的所有镜像注释,然后添加如下镜像,后面我们的tomcat
本地服务器要伪装成这个镜像服务器:<mirror> <id>aliyunmaven</id> <mirrorOf>*</mirrorOf> <name>阿里云公共仓库</name> <url>http://maven.aliyun.com/repository/public</url> </mirror>
注意是 http 而不是 https !!!
因为我们搭建
tomcat
服务器默认是http
服务。 -
打开
tomcat
的服务器配置文件:tomcat根目录/conf/server.xml
,找到这一段:<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="60000" redirectPort="8443" acceptCount="500" maxThreads="400"/>
将端口 8080 改为 80 ,
tomcat
服务启动以后,访问路径是127.0.0.1:8080
,http
默认端口是80
,所以先改tomcat
端口为80,这样浏览器输入127.0.0.1
就是tomcat
主页 -
手动从中央仓库下载索引,需要下载两个文件:nexus-maven-repository-index.properties 和 nexus-maven-repository-index.gz 。这里有个小坑,从谷歌浏览器直接另存为第一个文件,会自动加
.txt
后缀,注意去除。 -
在
tomcat根目录/webapps/ROOT/
下 创建文件夹/repository/public/.index/
,将下载好的文件移动到tomcat根目录/webapps/ROOT/repository/public/.index/
下,tomcat
主页对应tomcat
文件夹中的ROOT
文件夹,因此,我们在ROOT
文件夹里加文件,就能通过127.0.0.1/文件夹名
下载。 -
使用管理员权限修改
host
文件:C:/Windows/System32/drivers/etc/hosts
,在最后添加一行:127.0.0.1 maven.aliyun.com
,使访问maven.aliyun.com
映射到127.0.0.1
,计算机是先查host
再查dns
的,因此,修改host
文件,把阿里云映射到本地,这样,访问maven.aliyun.com
时,系统就自动跳到127.0.0.1
。 -
启动
tomcat
,在Windows
系统下双击tomcat根目录/bin/startup.bat
即可,启动时可能会报找不到jdk
或者80端口占用等错误,百度一下自行解决,这里不再赘述。启动完成后建议浏览器访问http://maven.aliyun.com/repository/central/.index/nexus-maven-repository-index.properties
,看看是不是正常访问。 -
打开
IDEA
,然后打开File -> Settings
或者快捷键Ctrl + Alt + S
打开设置,找到Build,Execution,Deployment -> Build Tools -> Maven -> Respositories
,然后点击https://repo.maven.apache.org/maven2
再点击Update
按钮进行更新,这时候千万不能关闭对话框,否则会导致更新失败,IDEA
右下角会有更新进度条,等进度条消失就更新完毕啦。 -
更新完成后我们要恢复一些配置文件:
- 关闭
tomcat
服务器,修改server.xml
配置文件,将 80 端口再改为8080端口。 - 删除
ROOT
目录下的文件夹。 - 删除
hosts
最后一行我们添加的映射。 - 将
Maven
配置文件中http
再改为https
。
- 关闭