...
没想到的是居然有4
个组件的版本冲突。其中大家应该注意到一个组件 github.com/gqcn/logrusr
,这个组件是我从 github.com/bombsimon/logrusr
项目fork
的一份,升级了内部依赖的 github.com/go-logr/logr
组件版本到当前项目整体依赖比较适中的版本v1.2.3
,即将整体的冲突的版本通过强制升级的方式来解决。在执行强制升级的时候,组件之间依赖的接口和方法兼容非常重要,不是简单升级版本那么简单。此外,虽然本次组件版本冲突不得不维护一个自定义的组件仓库,但维护一个基本不变的组件比维护一个可能变化的组件成本和风险会更小一些。
一些总结
这种版本冲突问题几乎很难避免,对三方组件依赖的越多,这种风险越大,风险即为成本。