如何通过go get命令下载client-go v12.0.0版本?
解决方法
直接执行以下命令即可通过go get下载该版本:
go get k8s.io/client-go@v12.0.0+incompatible -mod=mod
如果上述命令仍报错,可以先清理模块缓存再重试:
go clean -modcache go get k8s.io/client-go@v12.0.0+incompatible -mod=mod
原因说明
- k8s.io/client-go v12.0.0的
go.mod文件中模块路径为k8s.io/client-go,不符合Go模块语义化版本规范(v2及以上版本的模块路径必须追加/vN后缀),因此该版本需要用+incompatible标记来标识其不兼容模块规范。 - 直接执行
go get k8s.io/client-go@v12.0.0+incompatible报错,是因为Go 1.18的模块解析逻辑会严格校验版本与模块路径的匹配关系;而go mod tidy是基于已在go.mod中声明的依赖进行处理,会直接按照指定的兼容标记去下载,跳过了部分路径校验步骤。 - 添加
-mod=mod参数是强制Go使用模块模式处理依赖,确保解析过程中优先遵循go.mod的规则,从而正确识别+incompatible标记的版本。
内容的提问来源于stack exchange,提问作者Wallace
相关产品推荐
相关产品推荐

