美文网首页
Go依赖包版本冲突解决

Go依赖包版本冲突解决

作者: ashyanSpada | 来源:发表于2021-04-08 18:39 被阅读0次

GO项目开发中存在多个包依赖同一个第三方包的不同版本的情况。例如包A依赖包C的v1.0.0版本,包B依赖包C的v2.0.0版本。go build时会按照高位兼容原则,取依赖包的v2.0.0版本。如果C未实现向前兼容,build时就会报错。

解决方法

最理想的解决方式是升级包A的版本,即执行

go get -u A

但如果A的最新版本依赖的是包C的v1.5.0版本,那么还是会遇到上述问题。这时候就需要对包B进行降级,降级步骤如下:

go get C@v1.5.0 // 先将包C降级到v1.5.0版本
go build // 编译时会自动下载符合的B版本包

总结

出现这个问题的根因是公共依赖包开发时未做向前兼容,开发Go模块时一定要做兼容,因为你不确定谁会引用这个模块。

相关文章

  • Go依赖包版本冲突解决

    GO项目开发中存在多个包依赖同一个第三方包的不同版本的情况。例如包A依赖包C的v1.0.0版本,包B依赖包C的v2...

  • maven依赖冲突以及解决方法

    什么是依赖冲突 依赖冲突是指项目依赖的某一个jar包,有多个不同的版本,因而造成类包版本冲突 依赖冲突的原因 依赖...

  • Maven解决依赖冲突

    maven依赖冲突以及解决方法 什么是依赖冲突 依赖冲突是指项目依赖的某一个jar包,有多个不同的版本,因而造成类...

  • swagger的使用

    一开始运行swagger时依赖包冲突,需要手动引入guava.jar的20.0版本 Maven依赖冲突的两种解决方...

  • Maven 依赖jar包版本冲突解决

    Java的强大之处就是在于它的生态环境,有众多的轮子支持复杂项目的开发。现在基本上每个稍微有点规模的Java项目都...

  • androidstudio gradle 解决包冲突的方法

    exclue :附录 去掉全部依赖 去掉部分冲突 强制依赖某个版本 包依赖冲突的时候 转载:https://bl...

  • Android Studio常见问题整理

    包冲突问题处理 查看app的依赖情况 解决依赖包冲突的方式 在处理依赖包冲突时发现.以下两种方式的作用不一 方式①...

  • 彻底认识包(依赖)冲突

    什么是包(依赖)冲突? 包冲突是指在一个项目的不同部分引用(依赖)的代码库、资源包的版本号不一致。 包冲突的实质是...

  • Maven中依赖冲突解决方案

    在使用Maven中我们导入jar包坐标时会产生依赖传递,而依赖传递难免会发生jar包间的依赖冲突,解决jar包冲突...

  • go 代码依赖管理工具mod使用

    什么是go mod Go.mod是Golang1.11版本新引入的官方包管理工具用于解决之前没有地方记录依赖包具体...

网友评论

      本文标题:Go依赖包版本冲突解决

      本文链接:https://www.haomeiwen.com/subject/rkyvkltx.html