maven archetype

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

首先,我们心中要有一个模子的雏形,就像我们现在想要做一个心形的蛋糕,那么我们就要知道心形是什么样子的,才能做出一个心形的模子。
在这里呢,我们就需要一个可以作为模板的工程。例如下图所示:

标准demo工程

非常标准的一个小项目(手动狗头)。

接下来呢,我们就用这个项目作为例子,来演示如何使用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 指定项目默认包路径

看到如下结果的时候,就说明我们的模板制定成功了。

archetype制定成功

紧接着,我们可以来到demo项目的target/generated-sources目录下,看到生成的archetype项目,如下图:

archetype项目位置

第二步,我们可以把archetype目录复制出来,单独作为一个项目来看。(单独复制出来不是必须的)
导入到idea里面后,我们可以看到archetype的项目结构如下:

archetype工程结构

我们现在要做的就是将这个archetype项目打包到我们的maven本地仓库中。
在archetype项目的的根目录下执行如下命令:

mvn install

打包成功后,我们可以在本地仓库中找到对应的archetype-catalog.xml文件以及生成的对应archetype的jar包

archetypeCatalog.jpg

archetypeJar.jpg

至此,我们的archetype模板就制作完成了。

2.使用已经做好的archetype模型

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

  • 结合idea来使用

    我们打开idea来创建一个maven项目,并选择add Archetype,将刚刚我们生成的模板坐标添加进去。

在idea中添加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的话,可能会造成包路径重复。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,826评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,968评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,234评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,562评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,611评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,482评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,271评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,166评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,608评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,814评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,926评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,644评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,249评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,866评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,991评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,063评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,871评论 2 354

推荐阅读更多精彩内容