1、为什么要生成自己的maven脚手架(maven骨架)?
问题背景:
1.1 目前公司中没有统一使用模板工程,都是每个业务线根据自己的之前项目去创建新项目。没有统一的工程结构规范,
1.2 重新搭建也很浪费时间,而且会出错。(作为一个准时下班的程序员,必须要高效率,高质量地完成任务)
所以我们必须使用统一的模板工程,这是这篇文章的目标。
2、如何搭建我们的maven脚手架呢?(请认真,一步一步跟着操作)
2.1 选定自己的一个工程,我们利用这个工程生成模板工程
2.2 加入生成骨架的插件
2.3 使用maven命令生成骨架(注意:这里有个坑。如果你使用IDEA上的maven窗口,需要注意,使用的maven是自己下载的maven还是IDEA的maven)
2.3.1 使用IDEA右侧的MAVEN工具栏目(推荐,既然有工具,为啥不用呢?)
2.3.2 手动用maven命令(注意,这里有坑,使用这种方式,本质是用了配置在系统全局变量里面的maven_home对应地址的maven)
2.4 调整骨架里面的内容(主要花时间在这里调整代码的细节。)
考虑的点:
1、既然是通用性。那么数据库的账号和密码,最好分配只有操作某一张演示表的权限。
2、spring boot 启动类,到底放在什么文件夹下?这个要根据公司的约定吧。本质是,spring boot启动类,在启动的时候,只会扫描当前包下的所有的包。(反面例子:依赖的一个公司的依赖包,某个client,是放在com.common下。如果启动类放在com.xiaoming下,那么启动类就扫描不到这个client类)
2.4.1 动态文件名需要__A-api__(两个双下划线)
2.4.2 文件内的内容需要动态替换,用到${archetype}
2.4.3 用户输入的groupId,会替换${package}里面的package。例如:groupId为com.ving,则 import com.ving.***
2.4.4 用户输入的archetypeId,会替换${archetype}和${rootarchetype}
2.4.5 用户输入的version,会替换${version}
2.4.6 archetype-metadata.xml(这个文件很重要)
3.1 如何将骨架安装到本地仓库?
经过多次的调整骨架之后,需要安装到本地仓库(如果确定骨架没有变动之后,可以推送送到公司的私服maven仓库中)
使用maven的Install命令即可
检查本地仓库是否安装成功
3.2 如何将骨架推送到公司私服仓库?
在骨架的父pom文件中,添加maven私服地址(这个是maven的知识,如果有不知道同学,可以自行了解)
执行deploy命令,完成推送到私有库(一般情况下,将骨架工程,打成压缩包,给公司的运维同事,让他帮忙执行deploy命令,将jar包推送到私有仓库)
4 如何使用我们刚刚定义的maven骨架,创建新的工程?
4.1 打开IDEA
4.2 点击File--->New--->Project--->Maven-→勾选Create from archetype --→点击Add Archetype
4.3 输入GroupId,ArtifactId,Version
<groupId>com.XXX.framework</groupId>
<artifactId>ky-project-sample-archetype</artifactId>
<version>1.0.0-SNAPSHOT</version>
4.4 选择模板工程
4.5 之后都是下一步,下一步完成操作。
总结:上面是我在公司生成的maven骨架的全部工程。最花时间的步骤是调整maven骨架的代码。总体实现难度不大。