团队技术统一第一步----Maven Archetype
一个团队是由各种各样的技术人才组成的, 但是如果没有一个规范/标准, 那当你审阅每个人的代码后心态可能是你手机里的第三张表情包的样子
因此团队技术的统一, 组件版本的统一是尤为重要的, 同时如果再借助 Google Coding Style/Alibaba Coding Style 等插件帮助, 就可以基本达到看任何一个同事的代码都和看自己的代码差不多.
当然了, 你不可能每天盯着每个人, 尤其是如果您正好是组长, 技术负责人等, 除了自身工作外, 还需要对团队代码质量负责, 那当然是需要一些工具的帮助了, Maven 的 archetype 就可以帮助到你.
1. 什么是 Maven Archetype
Archetype 的意思就是模板原型的意思,简而言之,Archetype 是一个 Maven 项目模板工具包,所有其他类似代码都由该模型生成。Archetype 将帮助你为其他开发人员创建 Maven 项目模板,并提供生成这些项目模板的参数化版本的方法。使用原型提供了一种很好的方式,可以以与你的项目或组织采用的最佳实践一致的方式快速启用开发人员。在 Maven 项目中,我们使用原型来尝试让我们的用户尽快启动和运行.
简单的说, 就是每个项目都需要干的那些事, 你想让别人必须干的事你都可以创建一个 Archetype 作为模板, 其他人创建项目时选择 Archetype, Maven 就会自动拉取你的模板工程给其他开发者.
这样, 你就可以找一两个人来维护 Archetype, 其他所有人都只通过 Archetype 创建项目
- 在 Archetype 中进行团队组件版本的统一管理
- 每个项目初始化都需要做的重复工作不用团队成员每个工程都干一遍了
- Google Coding Style 检查, Find bugs 插件, Docker 容器化配置等工作强制团队成员执行, 培养团队成员良好的编码习惯
- …
这个时候你就可以喝着茶, 看着报, 因为
2. 创建 Archetype
创建 Archetype 有两种方式, 一种是直接生成, 一种是通过一个已有的项目创建 Archetype, 这里帅帅推荐通过第二种方式.
即: 先创建一个项目, 把需要集成的,配置的,通用的代码都写好, 测试通过, 再基于这个项目创建一个 Archetype.
这里帅帅创建一个SpringBoot + Jpa + Google Coding Style + Find bugs + Docker 容器化
的 archetype 为例进行说明.
官网资料也给你哦: https://maven.apache.org/archetype/maven-archetype-plugin/advanced-usage.html
2.1 创建一个 Maven 工程
我们创建了个父子工程, 父工程负责组件版本统一管理, 子工程就是每个具体的 Archetype. 上图中我们创建了 SpringBoot + Jpa 的相关配置, 并且团队常用的配置信息都已经配置进去
2.2 基于模板项目生成 Archetype
在具体的 Archetype 工程根目录(springboot-jpa)下, 执行
mvn archetype:create-from-project
生成 archetype, 默认生成在target/generated-sources/archetype/
路径下.
注意: 父子工程需要先把父工程发布到 maven 仓库或者公司 nexus 私服.
2.3 进入生成的 Archetype
这个就简单在, 将终端/Dos 路径切换:
cd target/generated-sources/archetype/
2.4 发布 Archetype
发布通过一下命令:
mvn deploy
3. 使用 Archetype
这里以 IDEA 工具为例,
- 首先点击新建–>项目, 选中通过 Archetype 创建项目
- 添加 Archetype(第一次使用 Archetype 可能并没有加载出来你的 Archetype ---- spring-boot-jpa-archetype, 只有第一次可能需要手动添加)
- 下一步
- 核对信息点完成
- 等待 maven 自动生成工程
好了, 以后你的团队谁要是创建个可以直接写业务的工程还得 2 分钟, 我, 我, 我就把它借给你:
哈哈哈哈…