背景
公司在使用Pig4Cloud微服务开源框架集成现有的单体项目时,考虑到运维同事们gitlab CICD 时的方便性,我们把聚合多模块的git单仓库项目拆分多仓库管理
一、仓库建立
gitlab 上建立多个project,根据拆分,我们分别建了 pig-auth、pig-common、pig-gateway、pig-upms、。。等仓库。
其中auth 服务作为权限部分逻辑处理,common提供公共基础支持,gateway作为网关,upms服务是管理侧后端,我们把common中的log、security模块也拆了出来,因为这俩依赖了upms,这一点可以看出pig的设计并不是很好,公共基础模块不应该依赖业务层,个人拙见。
二、代码拆分
由于之前的pig是聚合项目,使用了pig作为parent管理。我们拆分后,把common作为公共基础同时作为parent为其它项目提供依赖。也就是所有其它的应用都依赖pig-common
pig-common中管理公共依赖的jar包以及其它jar的版本。pig-common自己又作为一个聚合项目,管理着公共依赖的模块,像pig-common-core、pig-common-swagger....
pig-common中公共基础代码一般不会去变更,我们使用revision进行公共模块的版本管理,这样当common的版本变动时,只需改revision一处就行,不用牵一发而动全身。
这样就可以完成聚合项目到多仓库分别CICD啦。