• 把项目打包成Maven Archetype(单模块项目脚手架)


    官方教程

    1 创建一个工程,单模块的,项目结构如下

    在这里插入图片描述

    工程规范:项目的groupId要和顶级包名一致。

    不然创建出来的模板要手工改很多地方,一致的话就可以直接用${groupId}代替了。
    在这里插入图片描述

    2 pom.xml加入maven-archetype-plugin插件

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.pluginsgroupId>
                <artifactId>maven-archetype-pluginartifactId>
                <version>3.2.0version>
                <configuration>
                	<propertyFile>archetype.propertiespropertyFile>
                configuration>
            plugin>
        plugins>
    build>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    3 新增Maven环境变量MAVEN_OPTS

    -Xms256m -Xmx512m -Dfile.encoding=UTF-8
    
    • 1

    4 新增archetype.properties

    当我们使用 maven-archetype-plugin 插件基于当前项目生成一个 archetype 模板项目时,该插件默认会把当前项目下所有的文件都会打包到 jar包中。

    实际上我们希望在 build 的时候能过滤一些非必要的文件目录,如 .idea目录、 README.md 等,这时只需要在构建的时候,配置一个 archetype.properties 文件参数,并在其中定义 excludePattern 属性来过滤文件或目录。

    excludePatterns 参数可以指定多个过滤条件,以英文逗号分割即可。

    不过需要注意的是,如果想过滤整个目录,如 .idea 目录,需要配置为: .idea/* 而不能仅填写为 idea ,这个 .gitignore 配置还是有差别的。

    # 打包过滤文件
    excludePatterns=.idea/*,.git,*.iml,.idea/
    
    • 1
    • 2

    5 添加.gitignore

    .gitignore重命名为__gitignore__,然后在archetype.properties中加入以下内容

    gitignore=.gitignore
    
    • 1

    6 构建archetype

    进入工程目录,运行以下命令
    mvn archetype:create-from-project --settings D:\DevelopTools\apache-maven-3.6.3\conf\settings.xml
    
    • 1
    构建完成后会在target看到这个archetype

    在这里插入图片描述

    7 安装archetype到本地仓库

    进入创建好的Archetype所在目录:target\generated-sources\archetype

    运行以下命令

    mvn install
    
    • 1

    8 使用自定义archetype

    进入一个新的目录,执行以下命令
    mvn archetype:generate -DarchetypeCatalog=local
    
    • 1
    这里选3,就是刚才生成的那个archetype

    在这里插入图片描述

    依次填上groupId ,artifactId,version,package,然后回车输入Y即可创建一个新的工程

    在这里插入图片描述

    创建完毕

    在这里插入图片描述

    9 打开工程并验证

    新的工程和原工程一样

    在这里插入图片描述

    现在启动并验证

    在这里插入图片描述

    输入http://localhost:8080/hello,可以看到成功

    在这里插入图片描述

    10 文件属性替换

    找到项目的target\generated-sources目录下有一个archetype文件,这个就是骨架文件。在里面有个archetype-metadata.xml,这个文件是基础配置。
    在这里插入图片描述
    如果在配置文件或其它地方有用到Archetype的变量,如在application.yml的spring.application.name

    spring:
      application:
        name: ${artifactId}
    
    • 1
    • 2
    • 3

    这样就需要在archetype-metadata.xml配置yml的地方加上filtered="true",加了这个属性的会进行属性变量替换。如下

    <fileSet encoding="UTF-8" filtered="true">
      <directory>src/main/resourcesdirectory>
      <includes>
        <include>**/*.ymlinclude>
      includes>
    fileSet>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    加了以后,生成的新工程就会替换成对应的artifactId

    spring:
      application:
        name: user-center
    
    • 1
    • 2
    • 3
  • 相关阅读:
    SpringCloud面试题及答案 300道,springcloud面试题总结 (持续更新)
    企业专线成本高?贝锐蒲公英轻松实现财务系统远程访问
    TikTok生态圈【6.27跨境日报】TikTok夏季大甩卖利用现场活动中的游戏化
    YOLOv5 分类模型 OpenCV和PyTorch两者实现预处理的差异
    golang channel底层结构和实现
    「元宇宙」成为发展新坐标,文化产业如何「沉浸式」升维?
    无动物型胶原酶丨Worthington的多种应用方案
    [python刷题模板] 0-1BFS
    Unity3D 打包发布时生成文件到打包目录
    【电源专题】什么是开关稳压器的热回路?如何优化热回路?
  • 原文地址:https://blog.csdn.net/q283614346/article/details/126692547