这里是weihubeats,觉得文章不错可以关注公众号小奏技术,文章首发。拒绝营销号,拒绝标题党
随着公司项目越来越多,每次自己去搭建项目都会显得非常繁琐,而且对应一些打包相关的插件也会弄错,特别是多模块项目搭建更是麻烦,所以想定义一套统一的maven 骨架每次自动生成项目目标
首先我们创建一个模板项目,或者基于已有的项目。目前我的目标项目结构大致如下:

这里只是随便搭建的一个项目结构,具体实际项目结构根据自己公司的实际情况去制定
在项目根路径生成Archetype,执行如下命令
mvn clean archetype:create-from-project -Dmaven.test.skip=true
如果是idea可以直接在idea 的Terminal输入

如果出现如下报错
zsh: command not found: mvn
执行命令成功后就会在编译文件夹target看到如下文件

我们新建一个模板项目,项目结构随便。然后将刚才target下的src的文件全部复制到新项目

新项目的结构就是如下这样了

然后我们执行命令
mvn archetype:generate -DinteractiveMode=false -DarchetypeGroupId=com.zou -DarchetypeArtifactId=spring-boot-archetype -DarchetypeVersion=1.0.0 -DgroupId=com.zou -DartifactId=test -Dpackage=com.zou -Dversion=1.0.0-SNAPSHOT
参数说明
-DarchetypeGroupId:自定义archetype的groupId
-DarchetypeArtifactId:自定义archetype的artifactId
-DarchetypeVersion:自定义archetype的版本号
-DgroupId:要生成的工程的groupId
-DartifactId:要生成的工程的artifactId
-Dpackage:要生成的工程的包名
-Dversion:要生成的工程的版本号
执行完命令最后生成的项目的目录结构就如下图所示

对于项目中的一些配置我们可以自定义参数然后在生成项目的时候指定
比如我们可以指定生产的端口号为9000.
我们需要修改applicaiton,yml文件
server:
port: ${serverPort}
然后修改archetype-metadata.xml 文件添加变量
<requiredProperties>
<requiredProperty key="serverPort">
<defaultValue>8080</defaultValue>
</requiredProperty>
</requiredProperties>
archetype.properties中也添加一个默认值
serverPort=8080
我们在生成项目时候就可以添加参数
-DserverPort=9000
我们也可以直接在diea这里集成使用

参考