Maven Archetype原型
笔者最近在公司遇到一个需求,要创建一个基准项目,以此作为标准来创建后续的新项目。
emmmmmm
直接copy不行吗?
可以!但是复制过去之后会非常非常麻烦,工程量很大,失去了基准项目的意义。
那要怎么弄呢?
Maven Archetype闪亮登场,铛铛铛铛铛。
What is Maven Archetype?
我们从Maven的官网可以看到这样一句话:
In short, Archetype is a Maven project templating toolkit. An archetype is defined as an original pattern or model from which all other things of the same kind are made. The name fits as we are trying to provide a system that provides a consistent means of generating Maven projects. Archetype will help authors create Maven project templates for users, and provides users with the means to generate parameterized versions of those project templates.
翻译过来呢是这样子的:简而言之,Archetype是Maven项目模板工具箱。 原型定义为原始的图案或模型,可制成所有其他同类的东西。 这个名称正好适合我们试图提供一个提供生成Maven项目的一致方法的系统。 原型将帮助作者为用户创建Maven项目模板,并为用户提供生成这些项目模板的参数化版本的方法。
通过上述描述,我们可以把Archetype简单的理解为我们做蛋糕时候的模子,有了这个模子,我们只需要往里面有选择性的添加原料,就可以做出一样美味的蛋糕了。
How to use Maven Archetype?
上面呢,我们简单介绍了一下Archetype,也大概了解到这会是一个非常方便的东西,但是我们要怎么制作模子呢,制作好了之后,又要怎么使用呢?
1.如何制作Archetype
首先,我们心中要有一个模子的雏形,就像我们现在想要做一个心形的蛋糕,那么我们就要知道心形是什么样子的,才能做出一个心形的模子。
在这里呢,我们就需要一个可以作为模板的工程。例如下图所示:
非常标准的一个小项目(手动狗头)。
接下来呢,我们就用这个项目作为例子,来演示如何使用Archetype。
第一步,我们进入这个项目的根目录,并执行 如下命令:
mvn -s "D:\SOFT\apache-maven-3.6.3\conf\settings.xml" archetype:create-from-project -DpackageName=com.mic.demo
-s:指定maven的setting文件
-DpackageName 指定项目默认包路径
看到如下结果的时候,就说明我们的模板制定成功了。
紧接着,我们可以来到demo项目的target/generated-sources目录下,看到生成的archetype项目,如下图:
第二步,我们可以把archetype目录复制出来,单独作为一个项目来看。(单独复制出来不是必须的)
导入到idea里面后,我们可以看到archetype的项目结构如下:
我们现在要做的就是将这个archetype项目打包到我们的maven本地仓库中。
在archetype项目的的根目录下执行如下命令:
mvn install
打包成功后,我们可以在本地仓库中找到对应的archetype-catalog.xml文件以及生成的对应archetype的jar包
至此,我们的archetype模板就制作完成了。
2.使用已经做好的archetype模型
其实使用起来非常简单,两种方式:
-
结合idea来使用
我们打开idea来创建一个maven项目,并选择add Archetype,将刚刚我们生成的模板坐标添加进去。
选择刚刚添加的模板,下一步,下一步,下一步,就能生成新的项目了。
是不是跟我们做模板的工程一模一样,嘻嘻。
-
直接用命令来创建(比较拉风,实质没啥区别)
在存放代码的目录执行如下命令:
mvn archetype:generate -DarchetypeGroupId=com.mic /
-DarchetypeArtifactId=demo-archetype /
-DarchetypeVersion=0.0.1-SNAPSHOT /
-DgroupId=com.mic /
-DartifactId=archetype-test /
-Dversion=0.1 /
-Dpackage=com.chenyao.ace /
-DinteractiveMode=false
3.总结
本文,我们简单介绍了Maven的Archetype,如何创建自己的Archetype以及如何使用Archetype。后面再有需要创建新项目的时候,可以拿来试一下,装逼利器,事半功倍。
4.注意事项
在创建archetype模板的时候,其实只需要执行:
mvn archetype:create-from-project
但是有时候针对maven不同的配置,有可能会去.m2目录下去找settings.xml,可能会造成创建失败。
另外不指定package的话,可能会造成包路径重复。