基于Gitlab的项目开发流程实例

一.项目划分

Gitlab介绍:
gitlab是git的线上代码仓库一种,同款的还有github、码云、gogs等等,用于存储git代码。本地的代码统一放到线上去,这样大家需要的时候从线上就可以活得最新代码了。

对于一整套的java项目按照功能模块拆分,有2个基础工程,parent和config。
parent:
maven项目的公共工程,只有一个pom.xml,里面是依赖的jira包,每次修改都在这里修改,这样jar包更新后,其它项目都从这里获取jar版本,就会用的是最新版本的jar包,而不是每个项目都是自己的版本维护,那一更新就都要改。

- pom.xml

config:
maven项目的公共工程,存储通用的配置文件,打包时通过-uprod来指定环境,不同环境读取对应的env文件,其它文件夹存储的log4j2的日志配置文件,给对应工程配置日志,例如日志级别,打印位置等等。

- order
  - test-log4j2.xml
  - uat-log4j2.xml
  - prod-log4j2.xml

- pay
  - test-log4j2.xml
  - uat-log4j2.xml
  - prod-log4j2.xml

- test-env.properties
- uat-env.properties
- prod-env.properties

其它微服务模块每个模块一个项目,结构如下,在子工程中打出jar包做依赖,用主工程的pom打war包,提供整体服务。主pom里面只是引用各种jar包,做jar包的合集。

- order-api
  - src/main
  - pom.xml

- order-center
  - src/main
  - pom.xml

pom.xml

对于所有项目分为2个组,code和code_dev。code中只有一个master分支,用于生产环境发布。然后将其fork到code_dev组中,那里的代码有test、uat等其它分支,用于实验环境。

二.开发流程

对于项目按照模块划分小组进行开发,parent和conifg共同进行修改维护,并不需要fork提交,直接在gitlab页面修改即可,这2个项目在各自组中只有master分支。

对于其它模块项目,例如3个人共同开发订单模块,这次版本号DEV-2021-06-21版本,表明21号进行版本发布。对于这些需求平均分配工作量进行开发。

从dev组的order中,test分支克隆一个要发版的分支DEV-2021-06-21,再从这个分支中克隆出自己的分支,例如06-21-zhangsan,将这个分支下载到本地开发。本地开发后在合并到自己对应分支,这个确保合并到这上面肯定没问题,就只有自己修改不会有冲突。

再将自己的分支合并到DEV-2021-06-21这个版本分支中,如果也有其他人修改同文件这个上传后可能会有冲突,查看具体冲突地方协商后进行修改,再提交合并即可,这样版本分支也都没问题了。最后再合并到test中,进行test版本发布。

test分支发布完成经过测试没问题了,从test再合并到uat分支中,发uat环境。也没问题了,再发版前一天将dev组的代码合并到源项目中的master分支,等待后续生产发版。

0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论