您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Maven Archetype 原型

从本节开始,我们来介绍一些关于 Maven 的其他技巧,属于锦上添花类型的技巧。这些技巧并不会出现在平时的使用过程中,但是,如果用到的时候,你绝对会有种相见恨晚的感觉。

我们第引出来的是 Maven 的 Archetype 原型。我们在最开始的章节中也有所提及,今天我们就来重点讲一下 Archetype 原型在什么情况下会使用到,以及如何使用。

在我们平时的工作中,可能会遇到这种情况:当我们需要创建新工程的时候,可能需要从之前的工程当中移植一些过来,或者新工程与之前的工程有着类似的目录结构,这个时候,我们如果直接使用 copy 的方式,就需很大的变动,并不是很方便。这个时候,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 sy that provides a consistent means of gene 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 简单的理解为我们做蛋糕时候的模子,有了这个模子,我们只需要往里面有选择性的原料,就可以做出各种各样美味的蛋糕了

上面呢,我们简单介绍了一下 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 模板就制作完成了。

其实使用起来非常简单,两种方式:

我们打开 idea 来创建 Maven 项目,并选择 add Archetype,将刚刚我们的模板坐标进去。

选择刚刚的模板,下一步,并填写相应的信息,就能新的项目了。

进入存放的目录执行如下命令:

mvn archetype:generate  -DarchetypeGroupId=com.mic /
    					-DarchetypeArtifactId=demo-archetype  /   
    					-DarchetypeVersion=.-SNAPSHOT  /   
    					-DgroupId=com.mic  /   
    					-DartifactId=archetype-test     /
    					-Dversion=     /
    					-Dpackage=com.mic.ace     /
    					-DinteractiveMode=@H_204_@false

其中 DarchetypeGroupId,DarchetypeArtifactId,DarchetypeVersion 用来指定 Archetype 的坐标信息,DgroupId,DartifactId,Dversion 用来指定新创建项目的坐标信息。

在本节中,我们主要讲了 Maven 的 Archetype 原型,如何创建自己的 Archetype 以及如何使用 Archetype。后面再有需要创建新项目的时候,可以拿来试一下,事半功倍。


联系我
置顶