Archetype简介
Archetype是Maven工程的模板工具包。使用Archetype提供的方法可以快速的构建和组织一致化的工程,解决在工作过程中创建一个新项目时需一堆繁琐的配置工作(一个项目包含许多的配置文件。例如:Spring、mybatis、log4j、pom.xml、git等,其他的还包括项目目录骨架,整个过程配置下来顺利的话也要几十分钟)。
工具介绍
- IDEA
如何使用Archetype基于已有Maven项目生成自定义模板
- 首先要有一个想生成为模板的原型项目
- 删除项目里所有特定业务相关的代码、文件,保留最后生成的最小配置文件集合,以及项目的基本包结构配置
在项目的pom.xml文件中添加
maven-archetype-plugin
插件<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-archetype-plugin</artifactId> <version>2.2</version> </plugin>
在终端执行命令,生成Maven项目模板。成功执行完之后,生成的模板文件都在target/generated-sources/archetype目录下。
mvn archetype:create-from-project
- 进入项目的 target\generated-sources\archetype目录,执行命令将模板安装到本地maven仓库:
mvn clean install
至此,项目模板已生成完毕。
使用自定义模板创建项目
使用自定义模板创建项目有两种方式:
1. 使用命令行
在自己的workspace下执行
mvn archetype:generate -DarchetypeCatalog=local
选择自定义的模板项目的编号,按照提示输入参数值,这样项目就创建完毕了。
如果找不到我们的模板项目,检查一下~/.m2/目录下是否有archetype-catalog.xml文件。
通过mvn archetype:generate这种交互方式来创建Maven项目模板的时候,经常会长时间卡在:Generating project in Interactive mode这一行提示,这是由于获取archetype-catalog.xml导致的(浏览器访问http://repo1.maven.org/maven2/archetype-catalog.xml,需要等待很长时间才能获取到)。但使用默认archetype-catalog.xml文件下载下来的archetype太多了,有1400多种,但真正用到的其实只有quick-start项目模板和自定义模板。
解决方法:
- 指定-DarchetypeCatalog=internal参数(图3),使用archetype插件内置的catalog
- 指定-DarchetypeCatalog=local参数(图4),使用本地路径下的~/.m2/archetype-catalog.xml。如果本地没有archetype-catalog.xml,可以通过mvn archetype:crawl获取archetype-catalog.xml到~/.m2/repositoriy/archetype-catalog.xml。之后注意将archetype-catalog.xml放到~/.m2/目录下。如果想要获取更加完整的catalog,可以访问http://repo1.maven.org/maven2/archetype-catalog.xml。
2. 通过IDEA创建
在IntelliJ 中创建新的项目工程时,选择 create from archetype方式 ,并将生成的自定义模板添加进去:Add archetype,然后填写我们的新建项目的maven坐标,设置参数值就可以生成项目,非常方便。
如果事先建立过自己的项目模板,则可以在C:/用户/*/.m2目录下找到一个archetype-catalog.xml文件,这里面就有我们自定义项目模板描述,使用add archetype添加的时候,把archetype-catalog.xml中对应内容复制过去即可。