咸鱼开发修炼之路

利用Maven生成已有项目的脚手架

最近公司旧系统重构,要将旧系统功能拆分,新建多个新系统,由于新系统结构相似,为了快速进行系统搭建,希望将其中一个作为模板,创建Maven项目脚手架。
pasted-0.png

使用Maven Archetype Catalogs插件,根据已有项目,创建Maven项目脚手架,步骤如下:

  1. idea中安装插件Maven Archetype Catalogs
pasted-8.png
  1. 在一个已有的项目(作为模板的项目)中运行 mvn archetype:create-from-project,会在target目录下生成一个archetype目录,这其实是一个脚手架的maven项目
    在一个已有的项目(作为模板的项目)中运行 mvn archetype:create-from-project,会在target目录下生成一个archetype目录,这其实是一个脚手架的maven项目
pasted-9.png
  1. 提取该文件,用idea打开。app文件下即为脚手架文件结构,archetype-metadata.xml文件中调整子模块的目录,包含的文件类型等

    pasted-10.png
  2. 调整项目结构将groupId artifactId等用占位符替换

    pasted-11.png
  3. 完成后使用mvn install命令,把模板安装到本地仓库,安装完成即可在本地仓库看到生成的模板信息。会在本地仓库生成archetype-catalog.xml 文件

  4. (非必须)添加模板到IDEA。(第一步安装的 maven archetype catalogs 插件作用)

    pasted-12.png
  5. 创建模板时即可选择刚才创建的脚手架

    pasted-13.png
  6. 测试通过后在archetype项目使用mvn deploy命令发布到私服(需要在pom文件中配置私服地址)

    pasted-14.png
  7. 给私服下其他人使用

    • 方式1:idea中使用pasted-15.png
    • 方式二:maven命令形式生成新项目

      1
      2
      3
      4
      5
      6
      7
      mvn archetype:generate
      -DarchetypeGroupId=com.xxx
      -DarchetypeArtifactId=springbootdemo
      -DarchetypeVersion=0.0.1-SNAPSHOT
      -DgroupId={替换你要生成的项目的groupID,如:com.xxx.testdemo}
      -DartifactId={替换你要生成的项目的artifactId,如:testdemo}
      -Dversion={替换你要生成的项目的version,如:0.0.1-SNAPSHOT}

      也可以直接在命令中指定私服地址,但是注意3.0版本以上会报错,所以同时需要指定插件版本:

      1
      2
      3
      4
      5
      6
      7
      8
      mvn org.apache.maven.plugins:maven-archetype-plugin:2.4:generate
      -DarchetypeGroupId=com.xxx
      -DarchetypeArtifactId=springbootdemo
      -DarchetypeCatalog=https://repository.apache.org/content/repositories/snapshots/
      -DarchetypeVersion=0.0.1-SNAPSHOT
      -DgroupId={替换你要生成的项目的groupID,如:com.xxx.testdemo}
      -DartifactId={替换你要生成的项目的artifactId,如:testdemo}
      -Dversion={替换你要生成的项目的version,如:0.0.1-SNAPSHOT}
  8. 等一段时间就能看到生成的项目

    pasted-10.png