go mod踩坑记录
tbghg

公司的go语言版本较低,我自己使用的是go1.20,刚入职后 go mod tidy 了一下,按理说不会有什么问题,本地运行也可以,但后来发现构建平台构建失败,提示请使用高版本的Go。

另外公司采用的是大仓模式,所有B端的代码统一放在一个仓库中,微服务架构,就导致别的部门构建镜像时使用的版本较低,就会构建失败。

那么为什么go.mod中标明了版本,使用高版本go mod tidy后会出问题呢?

按理说如果在go.mod中标明版本为1.13,go mod tidy后只会选择 Go 1.13 版本兼容的依赖项,一般是不会出问题的。但是下面的库比较特殊:golang.org/x/net v0.6.0

go 1.13确实可以使用这个库,但如果用到了里面的http2部分就不太行了,因为http2依赖了io/fs,所以必须1.16及以上才能用,但是go mod把它直接按1.13可以使用处理了。

综上,go mod有时候确实不太灵光,如果不想背锅的话,可以直接go mod download

 评论