素材巴巴 > 程序开发 >

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

程序开发 2023-09-09 07:10:45

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

文章目录

  • 四、自定义Archetype导入及使用
  • 五、Springboot骨架构建
  • 总结

  • 前言

    提示:这里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: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导入及使用

    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这个项目上进行迭代,注意版本号升级:

    1.0.0
     

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


    总结

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


    标签:

    上一篇: 后端自动去除字符串前后空格 下一篇:
    素材巴巴 Copyright © 2013-2021 http://www.sucaibaba.com/. Some Rights Reserved. 备案号:备案中。