【Springboot】用IDEA创建自定义Maven Archetype

环境
IntelliJ IDEA 2022.1 (Ultimate Edition)
JDK 1.8
maven 3.6.0


前言

提示:这里idea版本为IntelliJ IDEA 2022.1 (Ultimate Edition)

笔者在2022年月才用IDEA进行Springboot的相关学习,所以在查阅相关资料时发现单单创建peoject这个步骤就已经有了变化,在2022.1版本中,Java/Kotlin/JavaScript等新项目都是从New Project入口创建,而且将Maven Archetype单做做了一个入口,在本文中将描述自定义一个Maven Archetype的过程,并将其实际应用。


一、Maven Archetype是什么?

Archetype即是项⽬⾻架,在老版本IDEA中创建Maven项⽬时,每次都会选择⼀个项⽬⾻架,每个⾻架对应特定的原型,在项⽬开发中,总会需要⾃定义⾃⼰项⽬的⾻架,统⼀项⽬⾻架,在创建新的服务时就会减少很多不必要的⿇烦。2022.1版本的IDEA将入口收敛至Maven Archetype,使用项目骨架均从该入口创建新项目。

二、Maven Archetype项目基本组成

一个典型的Maven Archetype项目主要包括如下几个部分:

  1. pom.xml
    Maven Archetype自身的POM。
  2. src/main/resources/archetype-resources/pom.xml
    基于该Archetype生成项目的POM原型。
  3. src/main/resources/META-INF/maven/archetype-metadata.xml
    Archetype的描述符文件。
  4. src/main/resources/archetype-resources/**
    其他需要包含在Archetype中的内容。

三、创建自定义Maven Archetype

1.以Maven方式构建项目

要创建Maven Archetype,首先你要创建一个Maven的项目,然后再以这个项目作为模板。
File->New Project,笔者这里打算建一个Springboot的骨架项目,因此命名为:maven-template-springboot-simple,Build system选择 Maven,jdk选择1.8。GroupId 自定义即可, ArtifactId 和Name保持一致即可。在这里插入图片描述

2.创建Archetype

在maven-template-springboot-simple根目录执行:

mvn archetype:create-from-project

首次尝试后,报错:

[ERROR] The specified user settings file does not exist: C:\Users\BigStone\.m2\settings.xml
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  02:00 min
[INFO] Finished at: 2022-05-14T12:56:36+08:00
[INFO] ------------------------------------------------------------------------

我们来看Maven的配置文件,settings.xml文件可能存在两个位置:
Maven安装:

{maven.home}/conf/settings.xml

用户安装:

{user.home}/.m2/settings.xml

前一个settings.xml也称为全局设置,后者的settings.xml称为用户设置。如果两个文件都存在,它们的内容将被合并,用户特定的settings.xml看作是主要的。如果从头创建用户特定的设置,最简单的方法是将Maven安装中的全局设置复制到{user.home}/.m2目录。Maven的默认settings.xml是一个包含注释和示例的模板,因此可以快速调整以满足需求。
因此,自定义Maven Archetype时,运行mvn archetype:create-from-project时报错:The specified user settings file does not exist: C:\Users\BigStone.m2\settings,原因是用户配置文件不存在,把全局配置文件复制了一份过去就解决了。这里的用户路径根据用户名不同做相应替换即可。
重新执行本节最开始的命令,执行完毕之后,会出现一个编译之后新的maven工程(target文件夹),如下图:
在这里插入图片描述

3.Archetype Install

这一步可以理解为生成自定义骨架,先进入骨架项目的pom文件目录:

cd target/generated-sources/archetype

执行install:

mvn clean install

至此,我们的Archetype已经创建完毕,对应的项目坐标为:

<groupId>com.hx.bigstone</groupId>
<artifactId>maven-template-springboot-simple-archetype</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>maven-archetype</packaging>

在本地Maven仓库中,也可以看到我们构建的Maven Archetype项目:
在这里插入图片描述

当然,本章只是单纯展示了如何构建一个Maven Archetype项目,但是其实里面并没有任何内容,达不到快速构建项目和加快配置的需求,因为我们将在第五章对该项目进行一次升级丰富,使其作为一个合格的springboot骨架。

四、自定义Archetype导入及使用

  1. 以Maven Archetype创建一个新的项目:File->New Project->Maven Archetype:
    在这里插入图片描述
    注意:这里的Catalog选择Default,指向本地maven仓库,这里还没有深入研究,后续补充。
  2. 添加自定义Archetype
    在上图的Archetype一栏,点击Add…按钮,并填入第四章第3节的Archetype项目信息:
    在这里插入图片描述
  3. 直接create项目即可,后续再使用该Archetype时,直接从Archetype栏目后的下拉框选择即可,并可在Version栏指定相应的版本。

五、Springboot骨架构建

上面我们只是打了一个空架子,回到我们最初的目标:搭建一个用以快速构建Springboot项目的基准项目,所以我们决定丰富我们的内容。
我们还是在maven-template-springboot-simple-archetype这个项目上进行迭代,注意版本号升级:

<version>1.0.0</version>

之后就是丰富代码结构,更新配置,添加引用等这里不放细节和过程了,大致的代码结构如下:
重复执行第三章第3节介绍的Archetype Install操作即可。
代码资源:https://gitee.com/stone_yang/springboot-quick-start


总结

Archetype其实就是脚手架/骨架,方便快速构建项目,不必要每次构建项目都要写各种各样的配置文件,弄得身心疲惫。

  • 9
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值