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

创建自定义Maven原型相关推荐

  1. maven原型_创建自定义Maven原型

    maven原型 Maven原型是项目模板,可以帮助我们根据其类型快速创建maven入门项目 . 这是一个不费吹灰之力地引导Maven项目的好工具. 我们可以使用多种原型. 一些流行的原型包括– mav ...

  2. 如何创建自定义maven archetype?

    如何创建自定义maven archetype? 文章目录 如何创建自定义maven archetype? 1. 什么是archetype 2. 创建项目模板 3. 创建archetype目录结构 4. ...

  3. 【Maven实战技巧】「插件使用专题」Maven-Archetype插件创建自定义maven项目骨架

    技术推荐 自定义Archetype Maven骨架/以当前项目为模板创建maven骨架,可以参考http://maven.apache.org/archetype/maven-archetype-pl ...

  4. maven原型_Maven原型创建技巧

    maven原型 我最近需要为姜黄SOA项目创建一些Maven原型. 对于不了解的人来说, Maven原型是一种基于一些预先罐装的项目模板生成项目的方法. 对于当前的姜黄SOA原型,它将创建一个多模块M ...

  5. Maven原型创建技巧

    我最近需要为姜黄SOA项目创建一些Maven原型. 对于不了解的人来说, Maven原型是一种基于一些预先罐装的项目模板生成项目的方法. 对于当前的姜黄SOA原型,它将创建一个多模块Maven项目,该 ...

  6. 建立自己的GWT Spring Maven原型

    大家好, 在观看Justin撰写的有关Spring和GWT的非常有趣的文章时,我认为展示如何构建自己的自定义Maven原型非常有用.我们将展示的原型基于Justin的上一个项目,并包括各种技术,例如S ...

  7. k8s+jenkins中使用自定义maven镜像

    简述 在k8s中使用工具不能像传统方式那样,在宿主机yum或编译安装,然后再挂载到容器中使用了:因为pod运行的节点不是固定的,如果继续按照传统方式,需要在pod可能运行的每个节点上都安装工具,这无疑 ...

  8. 使用Maven原型高效创建Eclipse模块

    Maven Archetype是一个项目模板工具包,可为开发人员提供生成内置或自定义脚手架工件的参数化版本的方法. 最近,我将其应用于我们的Xiliary P2存储库,以实现Eclipse模块存根创建 ...

  9. 自定义maven archetype,上传到nexus,并使用nexus远程的archetype创建项目

    一.需要自定义骨架的需求 有的时候,我们项目中会有很多公共的依赖.公共的代码.公共的配置文件 但是我们又不希望创建一个新项目之后重新从老项目拷贝.所以我们能使用老的项目作为新建项目的maven arc ...

最新文章

  1. 如何高效读论文?剑桥CS教授亲授“三遍论”
  2. 转:在 C# 中使用 P/Invoke 调用 Mupdf 函数库显示 PDF 文档
  3. 牛客 - 丁姐姐喜欢Fibonacci(找规律+思维)
  4. 【ArcGIS遇上Python】python批量获取栅格数据四至(top,bottom,left,right)坐标代码
  5. B.The Tortoise and the Hare 长春
  6. 应用SELinux中的目标策略限制进程运行
  7. 综述 | 知识图谱(Knowledge graph)链路预测(Link Prediction)
  8. 谭浩强c语言指针讲稿,谭浩强c语言教程 指针.ppt
  9. 应广单片机(MCU单片机科普)
  10. AudioEffect构造流程跟踪 音效库实现(native侧)
  11. CAD绘图的规范要点
  12. ENC5 H264/5 4K高清编码器使用说明书
  13. 用四叉树加速碰撞检测
  14. MTK Camera自定义Vendor Tag
  15. 进阶篇:4.2)DFA设计指南:优化装配工序
  16. ERROR ITMS-90096
  17. android多行文本输入,android EditText多行文本输入的若干问题
  18. 微信小程序二手交易系统ssm框架——计算机毕业设计
  19. 从零开始仿写一个抖音App——音视频开篇,移动安全入门
  20. Word中只修改某一页的页眉页脚,其它页的保持不变

热门文章

  1. [XSY] 相似(DP套DP)
  2. 读上瘾-让用户养成习惯
  3. 16、java中的集合(3)
  4. 浅谈流处理算法 (1) – 蓄水池采样
  5. 使用JDOM2.0.4 操作/解析xml
  6. 8条关于Web前端性能的优化建议
  7. 漫画:什么是HashMap
  8. FileInputStream
  9. 树层级处理上万条数据优化!
  10. 16年国庆假期期间兼职所悟