经常有人在你身边说MAVEN什么一方包、二方包、三方包。
那你清楚在讲什么吗?有什么区别?生产环境怎么规范定义?下面我们一起来聊聊这个话题。
01
一方包
先看上面的截图,我截图这个工程有多个module,彼此之间其实是存在多个依赖关系(application依赖iface,也依赖domain,infrastructure依赖domain)那么我们就说,各个依赖属于一方包!
02
二方包
在项目开发过程中(前提:本公司内部),很有可能你的业务需求需要依赖其他服务;
比如拿电商场景举例:订单服务在下单的时候就需要依赖库存服务扣减库存,那么库存服务其实是其他团队在维护,他们开发完成之后就会deploy到私服,给到你的是就是下面的依赖坐标,那么你集成到你的pom文件,然后配置一下,就可以通过本地调用来调用它的接口和方法,就像调用本地服务一样简单!
那么我们称公司内部其他团队或其他人提供你的dependency是二方包!
下面也简单介绍一下二方包的命名规范,毕竟实际开发过程中,二方包是你特别作为服务提供者,需要频繁与其他人进行交付的包,而且随着业务迭代,你需要不断增加版本号进行迭代,正式环境需要发布ReLease包。下面这个截图是阿里的命名规范,供你参考:
版本号命名及部署规范
03
三方包
公司之外的开源库,一般发布在中央仓库,比如dubbo、rocketmq、xxljob、Apollo等,Maven会从中央仓库去下载到你本地仓库。
这些依赖统称为三方包或三方库!