Maven-Archetype Catalog

当用户以不指定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实战》-许晓斌

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值