首页 » Maven实战 » Maven实战全文在线阅读

《Maven实战》18.3.2 Archetype Catalog的来源

关灯直达底部

archetype-catalog.xml能够提供Archetype的信息,那么maven-archetype-plugin可以从哪些位置读取archetype-catalog.xml文件呢?下面是一个列表:

·internal:这是maven-archetype-plugin内置的Archetype Catalog,包含了约58个Archetype信息。

·local:指向用户本地的Archetype Catalog,其位置为~/.m2/archetype-catalog.xml。需要注意的是,该文件默认是不存在的。

·remote:指向了Maven中央仓库的Archetype Catalog,其确切的地址为http://repo1.maven.org/maven2/archetype-Catalog.xml。在本书编写的时候,该Catalog包含了约249个Archetype信息。

·file://...:用户可以指定本机任何位置的archetype-catalog.xml文件。

·http://...:用户可以使用HTTP协议指定远程的archetype-catalog.xml文件。

当用户运行mvn archetype:generate命令的时候,可以使用archetypeCatalog参数指定插件使用的Catalog。例如:

上述命令指定Archetype插件使用系统/tmp目录下的archetype-catalog.xml文件。当然,用户不需要每次运行Archetype目标的时候都去指定Catalog。在maven-archetype-plugin 2.0-beta-4之前的版本中,archetypeCatalog的默认值为“internal,local”,即默认使用插件内置加上用户本机的Catalog信息,而从maven-archetype-plugin 2.0-beta-5开始,这一默认值变成了“remote,local”,即默认使用中央仓库加上用户本机的Catalog信息。用户也可以使用逗号分隔多个Catalog来源。例如:

该命令指定Archetype从两个位置读取Catalog信息。

archetype:generate的输出也会告诉用户每一条Archetype信息的来源。例如:

上述输出片段告诉用户,archetype 1-4来源于本机的~/.m2/archetype-catalog.xml文件,而archetype 5-9来源于Archetype插件内置的archetype-catalog.xml文件。