余瑜的博客 余瑜的博客
首页
  • 并发
  • 线程池
  • spring
  • maven
  • 其他
  • redis
  • mysql
  • linux
  • zookeeper
  • docker
  • terminal
  • kong插件开发
  • 资料
  • leetCode-简单
  • blog
  • 其他
关于
GitHub (opens new window)
首页
  • 并发
  • 线程池
  • spring
  • maven
  • 其他
  • redis
  • mysql
  • linux
  • zookeeper
  • docker
  • terminal
  • kong插件开发
  • 资料
  • leetCode-简单
  • blog
  • 其他
关于
GitHub (opens new window)
  • 并发

  • 线程池

  • spring

  • maven

    • maven
    • maven-optional可选依赖
    • maven查看依赖
    • 神器:maven脚手架
      • 前言
      • 整体流程
      • 准备工作
      • 依据模板项目生成脚手架
        • 模板项目 pom
        • 生成脚手架项目
      • 脚手架项目配置
        • 配置私服地址(必选)
        • 自定义配置(可选)
      • 本地测试
      • 上传私服
      • 使用骨架项目生成代码
        • 命令行方式
        • idea 方式
      • 参考文档
  • 其他

  • JAVA
  • maven
余瑜
2020-11-30
目录

神器:maven脚手架

# 前言

项目中为了将功能进行归类, 通常会将具有同种属性的类放在同一个模块中, 这样每次新建项目时其实都是一个依据模板项目修改项目名的重复操作. 这种情况可以使用maven-archetype-plugin插件来一次性解决

# 整体流程

  1. 依据模板项目生成骨架项目
  2. 在骨架中增加 maven 私服地址并修改配置文件
  3. 将骨架上传至私服
  4. 依据私服中骨架搭建项目

image-20210203152622210

# 准备工作

  1. maven 的setting.xml文件中已配置了私服地址及用户名密码
  2. 准备一个模板项目大致模块如下

image-20210203152746193

# 依据模板项目生成脚手架

# 模板项目 pom

引入脚手架插件

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-archetype-plugin</artifactId>
  <version>3.0.1</version>
</plugin>
1
2
3
4
5

# 生成脚手架项目

控制台进入模板项目根路径, 运行 mvn archetype:create-from-project 生成脚手架项目 运行成功后, 骨架会生成在 项目路径/target/generated-sources 目录下, 名称为  archetype

# 脚手架项目配置

# 配置私服地址(必选)

在骨架项目中找到项目文件中的父 pom ,增加私服配置 vi target/generated-sources/archetype/pom.xml

    <distributionManagement>
        <repository>
            <id>releases</id>
            <url>私服地址</url>
        </repository>
        <snapshotRepository>
            <id>snapshots</id>
            <url>私服地址</url>
        </snapshotRepository>
    </distributionManagement>
1
2
3
4
5
6
7
8
9
10

# 自定义配置(可选)

项目中可能存在没有在项目根路径下的文件, 比如 src/main/resources/bootstrap.yml文件, 这种文件默认是不做替换的, 我们可以在脚手架项目中找到对应文件, 并将其中对应包名替换为 ${package} ,groupId 替换为${groupId} 其他替换方式可在脚手架已生成内容中查找

image-20210203152959804

然后修改脚手架项目路径下 target/generated-sources/archetype/src/main/resources/META-INF/maven/archetype-metadata.xml 配置文件 先找到需要修改的文件所在模块,在模块中找到对应的文件配置, 在 fileSet 中添加filtered="true"属性,使在生成代码时替换该文件中代码

image-20210203153038190

# 本地测试

  1. 在生成的骨架项目根路径运行mvn install进行打包, 可以看到在本地仓库中生成了模板项目名-archetype 的骨架项目包
  2. 在其他路径下新建文件夹 temp, 我是在 target 目录下新建了 temp 文件夹, 进入 temp 文件夹, 运行
mvn archetype:generate -DarchetypeArtifactId=ArtifactId -DarchetypeGroupId=GroupId -DarchetypeVersion=版本号 -DarchetypeCatalog=local
1

上述代码需将=后文字替换为骨架项目实际参数

  1. 运行项目

# 上传私服

mvn deploy

# 使用骨架项目生成代码

# 命令行方式

mvn archetype:generate -DarchetypeArtifactId=ArtifactId -DarchetypeGroupId=GroupId -DarchetypeVersion=版本号 -DarchetypeCatalog=remote
1

# idea 方式

image-20210203152843811

image-20210203152919382

点击下一步后输入需要生成的项目名等信息按照步骤进行即可 idea 导入 maven 脚手架项目后, 如果想删除则需在本地缓存中进行删除, 文件路径Library/Caches/JetBrains/InteliJIdea2020.2/Maven/Indices/UserArchetypes.xml

# 参考文档

官方文档 (opens new window)

上次更新: 2021/02/20, 19:26:07

← maven查看依赖 io流→

Theme by Vdoing | Copyright © 2018-2022 逆光世间 | 备案号: 京ICP备19016086号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式