使用mvn archetype:generate的时候一直很慢。会卡在[INFO] Generating project in Batch mode或者是[INFO] Generating project in Interactive mode上。让人瞬间没有写代码的欲望了😢

通过加上-X参数可以看到,这是因为archetype插件在新建工程时,会去获取线上的模板工程的目录文件地址是

http://repo.maven.apache.org/maven2/archetype-catalog.xml

就是因为这个文件,拖慢了整个新建工程的步伐。

archetype插件有一个archetypeCatalog参数,这个参数指定从哪里获取archetype-catalog.xml文件,可选的取值有:

  • internal 只使用内置的目录文件(只包含org.apache.maven.archetypes底下的模板工程)
  • local 使用本地的目录文件(~/.m2/archetype-catalog.xml)
  • remote 使用maven网站上的目录文件
  • file://path/to/archetype-catalog.xml 指定本地的一个目录文件,如果文件叫archetype-catalog.xml指定目录就可以了
  • http://url/to/archetype-catalog.xml 指定远程的一个目录文件,如果文件叫archetype-catalog.xml指定目录就可以了

默认的值是remote,local,也就是先显示官方网站上的,再显示本地的。所以我们可以有两种做法:

如果你使用的是IDEA,需要在设置中添加这个选项:

转自:地址

PS. 附带一些可用的maven镜像:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<mirror>  
<id>repo2</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://repo2.maven.org/maven2/</url>
</mirror>
<mirror>
<id>net-cn</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://maven.net.cn/content/groups/public/</url>
</mirror>
<mirror>
<id>ui</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://uk.maven.org/maven2/</url>
</mirror>
<mirror>
<id>ibiblio</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://mirrors.ibiblio.org/pub/mirrors/maven2/</url>
</mirror>
<mirror>
<id>jboss-public-repository-group</id>
<mirrorOf>central</mirrorOf>
<name>JBoss Public Repository Group</name>
<url>http://repository.jboss.org/nexus/content/groups/public</url>
</mirror>

参考资料