创建自定义Maven原型

Maven原型是项目模板,可以帮助我们根据其类型快速创建maven入门项目 。 这是一个非常省力的引导Maven项目的好工具。

有许多可供选择的原型。 一些流行的原型包括– maven-archetype-quickstartmaven-archetype-webappmaven-archetype-archetype 。 要创建具有特定原型的Maven项目,我们可以使用:

mvn archetype:generate

该命令将要求我们选择一个原型,然后从中创建我们的maven项目。

我们还可以定义自定义原型。 当我们的项目中有许多共享相同结构的模块化应用程序时,这特别有用。 我们可以简单地标准化用于创建我们的项目模块的模板。

在本教程中,我们将学习创建和使用我们自己的Maven原型。

创建Maven原型:

从我们现有的项目之一创建Maven原型非常容易。 我们需要做的就是执行:

mvn archetype:create-from-project

从我们项目的根目录。

(可选)我们可以使用archetype-maven-plugin直接生成原型项目:

mvn archetype:generate -B -DarchetypeArtifactId=maven-archetype-archetype

无论哪种方式,在成功创建原型后,我们都会看到目标/生成源/原型中生成的原型文件

现在我们已经生成了原型结构,我们可以选择:

  • 根据我们的要求,修改target / generation-sources / archetype / pom.xml以添加或删除额外的依赖项
  • 修改我们的原型元数据文件-target / generated-sources / archetype / src / main / resources / META-INF / maven / archetype-metadata.xml

原型元数据描述符:

让我们快速看一下rchetype-metadata.xml包含什么

rchetype-metadata.xml存储我们原型的元数据。 它位于 jar内的–META-INF / maven文件夹中。

元数据文件结构类似于:

<archetype-descriptor...name="my-custom-archetype"><requiredProperties><requiredProperty key="name"><defaultValue>ProgrammerGirl</defaultValue></requiredProperty></requiredProperties><fileSets><fileSet filtered="true" packaged="true"><directory>src/main/java</directory><includes><include>**/*.java</include></includes></fileSet></fileSets><modules><module name="sub-module-1"></module><module name="sub-module-2"></module></modules></archetype-descriptor>

以下是一些重要的标签及其用途:

  • <requiredProperties>标记定义了从该原型生成项目所需的属性。 用户还可以选择继续使用属性的defaultValue
  • <fileSet>定义如何使用jar文件中的项目文件来生成项目。 如果文件或目录名称包含__ property __模式,则将其替换为相应的属性值
  • 在筛选的fileSet属性中,占位符在项目生成过程中被替换为提供的值
  • packaged =“ true”表示所选文件将在package属性前面的目录结构中生成
  • 对于多模块项目,我们可以使用< modules>标记来定义子模块

建立原型:

完成对pom.xmlarchetype-metadata.xml文件的修改后,就可以构建原型项目。

让我们转到路径/ generation-sources / archetype并执行

mvn clean install

它将插件安装在我们的本地存储库中。 我们可以交叉检查本地存储库中是否存在我们新创建的原型:

mvn archetype:generate -DarchetypeCalalog=local

使用创建的原型:

到现在为止,我们已经在本地存储库中成功安装了自定义原型。 为了从这个新创建的原型生成一个项目,我们将使用:

mvn archetype:generate -DarchetypeGroupId=com.programmergirl.archetypes-DarchetypeArtifactId=my-custom-archetype-DarchetypeVersion=1.0-SNAPSHOT-DgroupId=com.programmergirl-DartifactId=sample-project-Dversion=1.0-SNAPSHOT

其中com.programmergirl.archetypesmy-custom-archetype是我们先前创建的主要原型项目的groupIdartifactId 。 参数-DgroupId-DartifactId指定新生成的项目的groupIdartifactId

结论:

在本教程中,我们讨论了如何创建自定义Maven原型并使用它来生成多个项目。

翻译自: https://www.javacodegeeks.com/2019/05/creating-custom-maven-archetype.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/343295.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【渝粤教育】21秋期末考试国际私法10216k1

1、在下列机构中&#xff0c;————属于国际性的常设仲裁机构&#xff08; &#xff09;&#xff08;3 分&#xff09; A&#xff0e;瑞典斯德哥尔摩商会仲裁院 B&#xff0e;解决投资争端国际中心 C&#xff0e;美国仲裁协会 D&#xff0e;英国伦敦国际仲裁院 2、由于———…

php中的id怎么传值,uniapp如何跳转页面传值

uniapp跳转页面传值的方法&#xff1a;首先给点击事件传入id&#xff1b;然后Methods中写方法&#xff0c;代码为【uni.navigateTo({url:opportunity-form?idid})】&#xff1b;最后在详情页接收参数。本教程操作环境&#xff1a;windows7系统、uni-app2.5.1版本&#xff0c;该…

二层和三层工业交换机的主要参数说明

工业交换机是工业数据通信领域重要的设备&#xff0c;可以这样说&#xff0c;如果没有工业交换机&#xff0c;很多地方或者项目都联不上网&#xff0c;更不提进行远程网络管理了&#xff01;目前比较流行的工业交换机又分为二层和三层&#xff0c;之前我们也给大家介绍过什么是…

【渝粤教育】 广东开放大学 21秋期末考试互联网营销概论10092k2

1、物流的功能&#xff0c;下列选项中不属于的是&#xff08; &#xff09;&#xff08;2 分&#xff09; A&#xff0e;包装 B&#xff0e;装卸 C&#xff0e;售后 D&#xff0e;配送 2、网络营销工具中&#xff0c;SEM即&#xff08; &#xff09;&#xff08;2 分&#xff0…

php iconv 无效,关于nodejs iconv的编码无效 说明

关于编码转换或许你从网络途径 得知是这样使用的var fs require("fs");var iconvrequire("iconv-lite");var requestrequire("request");var txtfs.readFileSync("./a.txt","utf8");iconv.decode(txt,"gbk")requ…

工业级PoE交换机是如何进行工作的?使用中要注意什么?

工业级PoE交换机应用非常广泛&#xff0c;许多供电不方便的项目基本都采用了工业级PoE交换机来进行数据传输通信&#xff0c;而且大都是非网管型的&#xff0c;即插即用&#xff0c;配置简单&#xff0c;非常方便&#xff01;但你知道它是如何进行工作的吗&#xff1f;我们在使…

具有Azure功能的无服务器API

在这篇文章中&#xff0c;我将研究一个非常简单的用例。 在执行部署管道时&#xff0c; FlexDeploy可能会产生一些应被批准或拒绝的人工任务。 例如&#xff0c;某人必须批准对生产环境的部署。 可以在FlexDeploy UI中或通过某些外部通信渠道来完成。 今天&#xff0c;我将重点…

【渝粤教育】 广东开放大学 21秋期末考试物业经营管理实务10123k2

1、对于房地产市场供给的特点&#xff0c;下列说法不正确的是( )。&#xff08;2 分&#xff09; A&#xff0e;房地产市场供给具有较大的供给弹性 B&#xff0e;房地产市场具有高度的垄断性 C&#xff0e;供给主体间的竞争不充分 D&#xff0e;市场供给具有非同质性 2、物业可…

mysql创建连接失败怎么办,MYSQL在Windows 2003上连接不上的解决方法

MYSQL在Windows 2003上连接不上的解决方法今天搭建mysql数据库,连接了半天,都提示10061错误,以为密码出了问题试了半天,压根连服务都连接不上,忙活了半个多小时,才发现是系统补丁打了之后出现的问题(kb967723)于是网上找了一下资料最近一个客户服务器的MYSQL频繁提示连接不上&a…

工业以太网交换机的安全问题详解

以太网交换机技术发展趋势近几年来&#xff0c;随着企业数据通信业务以及相关的融合业务的迅猛发展&#xff0c;以太网交换机作为不可或缺的要害设备不仅在数量上获得了极大的提高&#xff0c;而且在质量、性能等方面不断完善。而伴随着以太网交换机的迅速普及&#xff0c;它的…

【渝粤教育】21秋期末考试中国法律史10212k1

1、我国古代首次公布的成文法是在&#xff08;3 分&#xff09; A&#xff0e;纸上 B&#xff0e;竹简上 C&#xff0e;帛上 D&#xff0e;鼎上 2、在唐朝遇重大案件&#xff0c;常由大理寺卿会同刑部尚书、御史中丞共同审理&#xff0c;叫做&#xff08;3 分&#xff09; A&am…

Java:ChronicleMap第3部分,快速微服务

标准Java地图需要在启动时进行初始化。 了解如何利用可从文件初始化的ChronicleMaps并显着减少微服务启动时间&#xff0c;以及如何在JVM之间共享Maps。 内置的Map实现&#xff08;例如HashMap和ConcurrentHashMap速度很快&#xff0c;但是必须先使用映射进行初始化&#xff0…

工业交换机的背板带宽是怎么计算的?

工业交换机的背板带宽&#xff0c;是工业交换机插口CPU或接口卡和系统总线间能够吞吐量的较大信息量。背板带宽标示了工业交换机总的数据传输工作能力&#xff0c;单位为Gbps&#xff0c;也叫互换网络带宽&#xff0c;一般的工业交换机的背板带宽从几Gbps到几百Gbps不一。一台工…

【渝粤教育】21秋期末考试工程经济10202k2

1、某设备原始价值16,000元&#xff0c;残值为零&#xff0c;折旧年限为5年&#xff0c;用双倍余额递减法计算的第4年折旧额为&#xff08; &#xff09;元。&#xff08;2.5 分&#xff09; A&#xff0e;1,728 B&#xff0e;1,382.4 C&#xff0e;2,304 D&#xff0e;3,840 2…

matlab 性能分析方法,DPCM,PSK系统的MATLAB实现及性能分析

DPCM/PSK系统的MATLAB实现及性能分析学生姓名&#xff1a;指导老师&#xff1a;摘要&#xff1a;本课程设计主要是为了进一步理解DPCM编码解码和PSK调制解调原理&#xff0c;并能通过MATLAB系统软件来实现对DPCM编码解码和PSK调制解调,且通过对各个元件的参数进行不同的设置&am…

【渝粤教育】21秋期末考试计量经济学10551k1

1、下面说法正确的是&#xff08; &#xff09;&#xff08;2 分&#xff09; A&#xff0e;先决变量是随机变量 B&#xff0e;外生变量是非随机变量 C&#xff0e;外生变量是随机变量 D&#xff0e;内生变量是非随机变量 2、平稳时间序列的均值和方差是固定不变的&#xff0c;…

orm java_Java 8 Friday:不再需要ORM

orm java在Data Geekery &#xff0c;我们喜欢Java。 而且&#xff0c;由于我们真的很喜欢jOOQ的流畅的API和查询DSL &#xff0c;我们对Java 8将为我们的生态系统带来什么感到非常兴奋。 Java 8星期五 每个星期五&#xff0c;我们都会向您展示一些不错的教程风格的Java 8新功…

工业交换机的端口号结构特征

假如按工业交换机的端口号构造来分&#xff0c;工业交换机大概可分成&#xff1a;固定不动端口号工业交换机和模块化设计工业交换机二种不一样的构造。实际上也有一种是二者兼具&#xff0c;那便是在出示基础固定不动端口号的基本以上再配置一定的拓展扩展槽或控制模块。今天&a…

python3 ftp.mlsd,python3中的ftp目录

我在Python3.3中有以下代码&#xff1a;ftpHost"myhost"linkftplib.FTP(ftpHost)link.login(user"me",passwd"alsome")tlink.nlst()link.quit()print(t)我得到的输出是^{pr2}$在python3文档中&#xff0c;写到FTP.nlst文件“自3.3版起已弃用&…

lora技术和zigbee技术那个好,两者有啥优势

ZigBee是基于IEEE802.15.4标准的低功耗局域网协议&#xff0c;LoRa是LPWAN通信技术中的一种&#xff0c;那么lora技术和ZigBee技术哪个好呢?今天我们就来看看具体的介绍。 LoRa是LPWAN通信技术中的一种&#xff0c;是美国Semtech公司采用和推广的一种基于扩频技术的超远距离无…