18.3.3 生成本地仓库的Archetype Catalog
maven-archetype-plugin提供了一个名为crawl的目标,用户可以用它来遍历本地Maven仓库的内容并自动生成archetype-catalog.xml文件。例如:
[INFO] Scanning for projects…
[INFO]
[INFO] ----------------------------------------------------------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] ----------------------------------------------------------------------
[INFO]
[INFO] ---maven - archetype - plugin:2.0 - alpha -5:crawl (default - cli) @ standalone
- pom ---
repository D:\java\repository
catalogFile null
[INFO] Scanning D:\java\repository\ant\ant\1.5.1 \ant -1.5.1 - sources.jar
[INFO] Scanning D:\java\repository\ant\ant\1.5.1 \ant -1.5.1.jar
[INFO] Scanning D:\java\repository\ant\ant\1.6 \ant -1.6.jar
[INFO] Scanning D:\java\repository\ant\ant\1.6.5 \ant -1.6.5.jar
…
[INFO] Scanning D:\java \repository \xpp3 \xpp3 _min \1.1.4c \xpp3 _min - 1.1.4c -
sources.jar
[INFO] Scanning D:\java\repository\xpp3 \xpp3_min\1.1.4c\xpp3_min -1.1.4c.jar
[INFO] ----------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ----------------------------------------------------------------------
[INFO] Total time: 19.355s
[INFO] Finished at: Sun May 02 15:43:37 CST 2010
[INFO] Final Memory: 3M/8M
…
如果不提供任何参数,crawl目标会遍历用户settings.xml定义的localRepository,并且在该仓库的根目录下生成archetype-catalog.xml文件。用户可以使用参数repository指定要遍历的Maven仓库,使用参数catalog指定要更新的catalog文件。例如:
D:\tmp>mvn archetype:crawl-Drepository=D:/java/repository\
-Dcatalog=C:/archetype-catalog.xml
将自定义的Archetype安装到本地仓库后,使用Archetype:crawl基于该仓库生成的Catalog就会包含该Archetype的信息,接着用户就可以在创建项目的时候指定使用该Catalog。