Maven Archetype 原型
从本节开始,我们来介绍一些关于 Maven 的其他技巧,属于锦上添花类型的技巧。这些技巧并不会出现在平时的使用过程中,但是,如果用到的时候,你绝对会有种相见恨晚的感觉。
我们第一个引出来的是 Maven 的 Archetype 原型。我们在最开始的章节中也有所提及,今天我们就来重点讲一下 Archetype 原型在什么情况下会使用到,以及如何使用。
在我们平时的工作中,可能会遇到这种情况:当我们需要创建新工程的时候,可能需要从之前的工程当中移植一些功能过来,或者新工程与之前的工程有着类似的目录结构,这个时候,我们如果直接使用 copy 的方式,就需要做很大的变动,并不是很方便。这个时候,Archetype 原型就能够排上用场了。
1. 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 简单的理解为我们做蛋糕时候的模子,有了这个模子,我们只需要往里面有选择性的添加原料,就可以做出各种各样美味的蛋糕了。
2. How to use Maven Archetype?
2.1 如何制作 Archetype
接下来呢,我们就使用这个项目作为例子,来演示如何使用 Archetype。
第一步,我们进入这个项目的根目录,并执行 如下命令:
mvn -s "D:\SOFT\apache-maven-3.6.3\conf\settings.xml" archetype:create-from-project -DpackageName=com.mic.demo
看到如下结果的时候,就说明我们的模板制定成功了。
紧接着,我们可以来到 demo 项目的 target/generated-sources
目录下,看到生成的 archetype 项目,如下图:
第二步,我们可以把 archetype 目录复制出来,单独作为一个项目来看。(单独复制出来不是必须的)
导入到 idea 里面后,我们可以看到 Archetype 的项目结构如下:
我们现在要做的就是将这个 Archetype 项目构建到我们的 Maven 本地仓库中。
在 Archetype 项目的的根目录下执行如下命令:
mvn install
执行成功后,我们可以在本地仓库中找到对应的 archetype-catalog.xml
文件:
以及生成的对应 Archetype 的 jar 包:
至此,我们的 Archetype 模板就制作完成了。
2.2 使用已经做好的 Archetype 模型
其实使用起来非常简单,两种方式:
- 结合 idea 来使用
- 我们也可以直接使用命令行来进行创建
进入存放代码的目录执行如下命令:
mvn archetype:generate -DarchetypeGroupId=com.mic /
-DarchetypeArtifactId=demo-archetype /
-DarchetypeVersion=.-SNAPSHOT /
-DgroupId=com.mic /
-DartifactId=archetype-test /
-Dversion= /
-Dpackage=com.mic.ace /
-DinteractiveMode=false
其中 DarchetypeGroupId,DarchetypeArtifactId,DarchetypeVersion
用来指定 Archetype 的坐标信息,DgroupId,DartifactId,Dversion
用来指定新创建项目的坐标信息。
3. 注意事项
4. 小结
在本节中,我们主要讲了 Maven 的 Archetype 原型,如何创建自己的 Archetype 以及如何使用 Archetype。后面再有需要创建新项目的时候,可以拿来试一下,事半功倍。