在上一节中(创建自定义archetype)我们手动创建了一个项目模板,经过5步能创建出一个项目模板,如果我有一个现成的项目,想用这个项目作为模板来生成其他项目呢?Maven提供了基于项目生成archetype模板的能力,我们分3步来讲解
- 从项目生成archetype,执行mvn archetype:create-from-project生成archetype
- 安装archetype到仓库
- 使用自定义archetype
1. 从项目生成archetype
我们有一个DiveInSpring工程,项目结构如下图,有个DiveInMain.java是应用的启动类,service包下有个ProductService.java类。现在要基于这个项目生成一个archetype项目模板。
通过执行mvn archetype:create-from-project,Maven自动为我们生成archetype模板项目的工程,存放在target/generated-sources/archetype下,我们看一下生成的目录结构,可以看到很多熟悉的身影,archetype-metadata.xml、archetype-resources等等。
2. 安装archetype到仓库
target/generated-sources/archetype就是我们的项目模板,现在我们要将它安装到仓库,执行mvn install通过输出查看GAV信息
D:\Workspace\DiveInSpring\target\generated-sources\archetype>mvn install
...
[INFO] --- install:3.1.2:install (default-install) @ DiveInSpring-archetype ---
[INFO] Installing D:\Workspace\DiveInSpring\target\generated-sources\archetype\pom.xml to C:\Users\randa\.m2\repository\
com\keyniu\dis\
DiveInSpring-archetype\
0.1\
DiveInSpring-archetype-0.1.pom
...
你也可以在对应的目录下,查看生成的pom.xml文件
3. 使用自定义archetype
使用mvn archetype:generate命令,利用上面生成的模板,创建工程,使用如下命令创建新项目
mvn archetype:generate -DarchetypeGroupId=com.keyniu.dis -DarchetypeArtifactId=DiveInSpring-archetype -DarchetypeVersion=0.1-DgroupId=com.keyniu.generate.example -DartifactId=GenFromProject-Dversion=0.1 -Dpackage=com.keyniu.gen.exa -DinteractiveMode=false
4. 验证新工程
生成工程之后,我们使用IDE打开工程,或者使用mvn命令编译打包,然后执行该工程,可以看到是执行成功的。