问题描述
使用maven新建一个工程或者模块的时候,执行下面的命令,总会需要很长时间的等待:
$ mvn archetype:generate -DgroupId=com.example -DartifactId=demo -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
...
[INFO] Generating project in Batch mode
... (长时间停顿)
不是搞不定,只是会花费很长时间。翻墙的话,能够提速。
问题检测
执行mvn命令时加上 -X 参数,即可查看具体卡在哪一步:
...
[DEBUG] (f) session = org.apache.maven.execution.MavenSession@26bbe604
[DEBUG] -- end configuration --
[INFO] Generating project in Batch mode
[DEBUG] Searching for remote catalog: https://repo.maven.apache.org/maven2/archetype-catalog.xml
(然后就停住了)
从浏览器打开这个文件,发现确实很慢。使用wget下载到本地后,大小是 8.4M。
问题解决
下载这个文件之后,放到 ~/.m2/repository/org/apache/maven/archetype/archetype-catalog/3.0.1
这个路径下,然后再生成maven工程的时候加上下面的参数,即可变为读取本地文件:
-DarchetypeCatalog=local
效果
从5分44秒缩减到3秒:
[INFO] Total time: 05:44 min
[INFO] Total time: 3.649 s
而当初下载这个文件的时候用了4m43s:
archetype-catalog.xml 100%[=============================================>] 8.36M 15.0KB/s in 4m 43s
2019-10-24 19:42:13 (30.3 KB/s) - ‘archetype-catalog.xml’ saved [8767830/8767830]