【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项目主要包括如下几个部分:
- pom.xml
Maven Archetype自身的POM。 - src/main/resources/archetype-resources/pom.xml
基于该Archetype生成项目的POM原型。 - src/main/resources/META-INF/maven/archetype-metadata.xml
Archetype的描述符文件。 - 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:UsersBigStone.m2settings.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:UsersBigStone.m2settings,原因是用户配置文件不存在,把全局配置文件复制了一份过去就解决了。这里的用户路径根据用户名不同做相应替换即可。
重新执行本节最开始的命令,执行完毕之后,会出现一个编译之后新的maven工程(target文件夹),如下图:
3.Archetype Install
这一步可以理解为生成自定义骨架,先进入骨架项目的pom文件目录:
cd target/generated-sources/archetype
执行install:
mvn clean install
至此,我们的Archetype已经创建完毕,对应的项目坐标为:
com.hx.bigstone
maven-template-springboot-simple-archetype
1.0-SNAPSHOT
maven-archetype
在本地Maven仓库中,也可以看到我们构建的Maven Archetype项目:
当然,本章只是单纯展示了如何构建一个Maven Archetype项目,但是其实里面并没有任何内容,达不到快速构建项目和加快配置的需求,因为我们将在第五章对该项目进行一次升级丰富,使其作为一个合格的springboot骨架。
四、自定义Archetype导入及使用
- 以Maven Archetype创建一个新的项目:File->New Project->Maven Archetype:
注意:这里的Catalog选择Default,指向本地maven仓库,这里还没有深入研究,后续补充。 - 添加自定义Archetype
在上图的Archetype一栏,点击Add…按钮,并填入第四章第3节的Archetype项目信息:
- 直接create项目即可,后续再使用该Archetype时,直接从Archetype栏目后的下拉框选择即可,并可在Version栏指定相应的版本。
五、Springboot骨架构建
上面我们只是打了一个空架子,回到我们最初的目标:搭建一个用以快速构建Springboot项目的基准项目,所以我们决定丰富我们的内容。
我们还是在maven-template-springboot-simple-archetype这个项目上进行迭代,注意版本号升级:
1.0.0
之后就是丰富代码结构,更新配置,添加引用等这里不放细节和过程了,大致的代码结构如下:
重复执行第三章第3节介绍的Archetype Install操作即可。
代码资源:https://gitee.com/stone_yang/springboot-quick-start
总结
Archetype其实就是脚手架/骨架,方便快速构建项目,不必要每次构建项目都要写各种各样的配置文件,弄得身心疲惫。
标签:
相关文章
-
无相关信息