一、问题描述
A服务
- -A-api
- -A-provider
B服务
- -B-api
- -B-provider
此时B-provider依赖A-api进行dubbo调用,我们有什么方式进行服务依赖的分享呢?
二、解决方法
2.1 方式一 私服共享
A-api 开发新的feature以后,mvn deploy到私服,建议通过流水线 cicd方式,在package以后就可以deploy到私服了。B-provider依赖的A-api就可以在A-api走到build后,从私服拉到包。
当然,A-api的developer也可以推代码到私服里。B-provider在开发时就可以拉取到依赖。
存在的问题(暂未解决):
1、私服没有区分环境(开发、测试、生产没有区分)
2、打包机不能拉到最新的jar包=>原因是 我们项目的版本号都是以release结尾,mvn配置-U强制从私服拉包也无效。
2.2 方式二 本地仓库共享(现行方案)
前置条件:A服务和B服务必须在同一个打包机下,以保证共享本地仓库。
流水线中配置mvn安装编译组件
A服务有代码变更,且没有改变版本,这时需要A服务的开发delopy到仓库(确保B服务开发在开发环境可以拉到最新的包),B服务开发要删除本地仓库缓存。
上测试环境时,A服务先进行流水线编译,B服务再进行编译即可