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

maven原型

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

  1. 创建自定义Maven原型

    Maven原型是项目模板,可以帮助我们根据其类型快速创建maven入门项目 . 这是一个非常省力的引导Maven项目的好工具. 有许多可供选择的原型. 一些流行的原型包括– maven-archety ...

  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命令,你会几个?

    今天有位微信好友私下问我:mvn install怎么好像把mvn compile的活也干了,所以我平时都是使用mvn install就ok了.奇怪的是,为什么还要搞个mvn compile呢? 听了这 ...

  5. 绝地求生自定义服务器购买,绝地求生怎么创建自定义房间_创建自定义房间方法教程...

    本文给大家带来绝地求生创建自定义房间的方法教程,绝地求生开放了自定义系统,玩家可以自主创建房间了.有些玩家不知道怎么创建,一起来了解一下吧,希望能帮到大家. 绝地求生创建自定义房间教程: - 进入自定 ...

  6. idea 制作maven脚手架_开发一个maven脚手架

    写在前面 开发新项目就需要搭建新工程,但是搭建新工程的这个过程是非常繁琐浪费时间的,并且不可避免的需要踩坑.更可怕的是,如果是在一个团队中,每新起一个项目都由不同的开发人员去自定义的搭建工程结构,那么 ...

  7. 如何导出maven子项目_如何使用maven 轻松重构项目

    现在是微服务盛行时代,说不准哪一天领导就会让你对一个大项目进行重构.大项目的痛点:编译慢.发布繁琐等.就像下面这张图: 真的不敢动呀,一不小心就坍塌了. 比如说我们用户系统,我们可以这么重构(这里只是 ...

  8. 自定义音频播放器_创建自定义HTML5音频播放器

    自定义音频播放器 在本教程中,我将向您介绍HTML5音频,并向您展示如何创建自己的播放器. 如果您想走捷径,请查看Envato市场上可用的现成的HTML5音频播放器 . 它使您可以从各种来源创建播放列 ...

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

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

最新文章

  1. mongodb 用户 设计_MongoDB 是什么?看完你就知道了
  2. java 与jni转码_Android第十五课 Jni自带的iconv库不支持GBK转码
  3. C语言中用栈实现进制转换,利用栈实现进制转换问题
  4. 轻松理解python中的_和__区别和含义
  5. JavaScript进阶2-学习笔记
  6. java 匿名对象有引用,封闭对象的引用通过匿名类java进行转义
  7. android之phonegap入门
  8. 新手一小时就写出人工智能应用 - 看图识熊
  9. 说文解字 —— 拆字
  10. QString和std::string转换乱码与sqlite存储汉字乱码
  11. java heapdump 分析工具_heapdump分析工具
  12. 高校ACM题库(转载)
  13. 中国股市:史上最新A股龙头股票
  14. python 函数调用自身_Python-函数的递归调用
  15. PMP-资源优化:资源平衡、资源平滑区别和举例,附对比图收藏
  16. SAP 财务替代(基本内容及常用财务替代配置涉及退出提供源代码)
  17. python对数正态分布函数_Python对数正态分布函数,python,中,的
  18. 南通万豪酒店开业;诺瓦瓦克斯任命新任总裁兼CEO | 美通企业日报
  19. 4.28日机器人队任务
  20. 深度学习:自编码器、深度信念网络和深度玻尔兹曼机

热门文章

  1. Data Structure Problem
  2. [SDOI2016] 生成魔咒(后缀数组SA + st表 + set)动态不同子串个数
  3. P3233-[HNOI2014]世界树【虚树,倍增】
  4. P4047-[JSOI2010]部落划分【最小生成树】
  5. P1892-团伙【图论,并查集】
  6. codeforces1493 D. GCD of an Array(数论)
  7. 13、oracle数据库下的游标
  8. Java进阶学习路线
  9. JFreeChart(七)之气泡图表​​​​​​​
  10. Mybatis传入参数类型为Map