问题背景:
golang开发过程中有时候所依赖的库版本进行了升级,如果自动go mod tidy去更新指定的库,会导致编译问题,或者系统运行的问题,这个时候我们可以一直import指定版本的依赖库
实例:
比如我在开发过程中,调用了一个unpackit的库进行压缩包的解压,具体函数:
这个函数的v1.0.0版本是,只有一个返回值
func Unpack(reader io.Reader, destPath string) error
这个库最新的版本v0.1.0是只有两个返回值error,而我开发的时候用的是0.1.0版本
func Unpack(reader io.Reader, destPath string) (string, error)
如果我简单的go mod tidy,则会更新最新到最新的版本,而导致编译错误,我只需用到指定的版本的库即可
解决办法:
更改go.mod,指定需要的版本的库后面加上版本号即可
然后重新go mod tidy,更新到指定的版本的库,重新编译即可