概述
当用户以不指定Archetype坐标的方式使用maven-archetype-plugin的时候,会得到一个Archetype列表供选择,这个列表的信息来源于一个名为archetype-catalog.xml的文件,如:
archetype-catlog.xml能提供Archetype的信息,那么maven-archetype-plugin可以从哪些位置读取archetype-catlog.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,例如:
$ mvn archetype:generate -DarchetypeCatalog = file:// /tmp/archetype-catalog.xml
上述命令指定Archetyp插件使用系统/tmp目录下的archetype-catalog.xml文件。当然,用户不需要每次运行Archetype目标的时候都去指定Catalog。在maven-archetype-plugin2.0-beta-4之前的版本中,archetypeCatalog的默认值为"internal, local",默认使用插件内置加上用户本机的Catalog信息。而从maven-archetype-plugin2.0-beta-5开始,这一默认值变成了"remote, local",即默认使用中央仓库加上用户本机的Catalog信息。用户也可以使用逗号分隔多个Catalog来源。
$ mvn archetype:generate -DarchetypeCalalog = file:// /tmp/archetype-catalog.xml, local
该命令指定Archetyp从两个位置读取Catalog信息。archetype:generate的输出也会告诉用户每一条Archetype信息的来源。
maven-archetype-plugin提供了一个名为crawl的目标,用户可以用它来遍历本地Maven仓库的内容并自动生成archetype-catalog.xml文件。
如果不提供任何参数,crawl目标会遍历用户settings.xml定义的localRepository,并且在该仓库的根目录下生成archetype-catalog.xml文件。用户可以使用参数repository指定要遍历的Maven仓库,使用参数catalog指定要更新的catalog文件。
mvn archetype:crawl -Drepository = D:/java/repository -Dcatalog = C:/archetype-catalog.xml
将自定义的Archetype安装到本地仓库后,使用Archetype:crawl基于该仓库生成的archetype-catalog.xml就会包含该Archetype的信息,接着用户就可以在创建项目的时候指定使用该Catalog。
《Maven实战》-许晓斌
最后
以上就是美满月光为你收集整理的Maven-Archetype Catalog的全部内容,希望文章能够帮你解决Maven-Archetype Catalog所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复