自定义archetype脚手架完整步骤与异常情况处理方案
- 一、创建模板项目
 - 二、生成骨架jar包
 - 三、骨架安装到本地仓库
 - 如果出现安装位置错误的情况,参考以下场景处理:
 
- 四、选择骨架,创建新项目
 - 创建项目时,如果一直卡在`Generating project in Batch mode`时
 
- 五、删除测试过程中,添加的无用的骨架
 - 参考文章
 
介绍:不同公司可能有自己内部的项目结构与统一依赖,每次新建项目都copy的话很麻烦,并且容易出错,此时就可以通过脚手架的方式直接创建符合公司规范的项目。本文章完整介绍如何创建,解决遇到的各种问题。
一、创建模板项目
idea点击file--->new--->project
 
 选择maven / Spring initializr 方式都可以,主要是创建一个作为模板的项目。
然后创建自己的各种包,及配置,譬如pom.xml 、application.yml等;
 如:
 
到这,可能有人会有疑问,我每个项目的包名都不同。
比如项目1是com.xxx.xx.x1项目2是com.yyy.yy.y1
要咋弄?不急,最后会有
二、生成骨架jar包
注意!!!
- 下方步骤,建议使用命令行的方式运行mvn,不要用idea右侧的maven插件命令
 
- 检查maven的配置是否正确:
 
根目录执行 mvn archetype:create-from-project
 
 运行成功会出现目录target
 
 target点开结构如下:
 
三、骨架安装到本地仓库
再进入target\generated-sources\archetype 目录执行:mvn clean install
 
 
 执行成功后,根据日志信息,检查安装的本地仓库位置是否正确。
如果出现安装位置错误的情况,参考以下场景处理:
- idea中确定配置已经指定了自定义的仓库地址与setting.xml位置
 - 需要明确一个点: 由于通过命令行的方式执行mvn,所以实际运行的是pc安装的maven,而非idea内置的maven。
 - 所以需要配置安装的maven的本地仓库地址,而非在idea的
settings中配置 - 配置步骤如下: 
  
- 打开maven安装目录conf/setting.xml文件
 - 在
<settings>标签下添加一行:<localRepository>D:\.m2\repository</localRepository>

 
 - 重新执行进入
target\generated-sources\archetype目录执行:mvn clean install即可 
四、选择骨架,创建新项目
idea点击file—>new—>project—>点击左侧的Maven----->选中复选框create from archetype----->选择自己的骨架。
记好骨架的坐标:
 
 添加自定义骨架:
 
 选择骨架,项目创建:
 
 
 核对maven配置:
 
 重点!!! 项目的包名参数传输
 
 项目创建完成之后效果:
 
对比骨架定义的包结构与创建的项目的包结构:
可以发现第一层包t1是会被省略掉的,这个一定要注意。
创建项目时,如果一直卡在Generating project in Batch mode时
 

 原因: IDEA创建MAVEN项目卡在Generating project in Batch mode。是MAVEN一直在请求:
 http://repo1.maven.org/maven2/archetype-catalog.xml
 
这个项目目录的xml文件,由于墙的问题,加载缓慢,等待时间十分漫长。
 解决方法: 修改setting.xml文件,把mirror改成阿里的镜像。
①:打开maven目录下的conf/setting.xml,注意是idea使用的maven【即idea内置的maven,目录一般是:idea安装目录\plugins\maven\lib\】。
②:搜索 <mirrors>;找到<mirrors>。在<mirrors>节点下添加。
<mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>        
</mirror>
 
③:运行mvn命令的时候加上 -DarchetypeCatalog=local这个参数。在IDEA中:
 
五、删除测试过程中,添加的无用的骨架
- 找到文件:UserArchetypes.xml,如我的路径是:
C:\Users\a\.IntelliJIdea2019.3\system\Maven\Indices\UserArchetypes.xml - 删除里面的记录

 
参考文章
https://blog.csdn.net/wangfenglei123456/article/details/121745483
 https://blog.csdn.net/z69183787/article/details/90945042
 https://blog.csdn.net/sheypang/article/details/79022260























