执行go get -u ./...后gax-go/v2模块go.mod版本格式报错,求解决方案
解决
go get -u ./...的模块版本格式错误问题 问题原因
报错核心是github.com/googleapis/gax-go/v2@v2.0.1的go.mod文件中,引用google.golang.org/genproto时使用了裸哈希值b98a9ff5e252,不符合Go模块的版本号规范——Go要求版本号必须是语义化版本(如v1.2.3)或伪版本(格式为v0.0.0-YYYYMMDDHHMMSS-<哈希前缀>)。
解决方法
替换有问题的gax-go/v2版本:在你的项目根目录的go.mod中添加replace指令,将旧版本替换为修复了该问题的新版本(比如v2.7.0,该版本已修复此格式错误):
replace github.com/googleapis/gax-go/v2 => github.com/googleapis/gax-go/v2 v2.7.0执行
go mod tidy同步依赖即可。直接指定符合规范的genproto版本:在项目的go.mod中直接声明正确格式的genproto伪版本,覆盖依赖中的错误引用:
require google.golang.org/genproto v0.0.0-20210806162952-b98a9ff5e252这个伪版本对应报错中的哈希提交,格式完全符合Go模块要求,执行
go mod tidy完成同步。升级Go版本(可选):若你使用的Go版本较旧(如1.16及以下),可能对模块版本格式的兼容性不足,升级到1.17+的稳定版Go,新版本的模块处理逻辑更完善,可能自动规避这类问题。
内容的提问来源于stack exchange,提问作者nonus25
相关产品推荐
相关产品推荐

