Golang - go-micro框架windows编译proto 出现报错:module declares its path as: github.com/micro/go-micro but was required as: go-micro.dev/v4/api
module declares its path as: github.com/micro/go-micro but was required as: go-micro.dev/v4/api
have Call("context".Context, "github.com/asim/go-micro/v3/client".Request, interface{}, ..."github.com/asim/go-micro/v3/client".CallOption) error
want Call("context".Context, "go-micro.dev/v4/client".Request, interface{}, ..."go-micro.dev/v4/client".CallOption) error
项目使用的是 go-micro/v3,但是 protoc-gen-micro 插件默认生成的是 v4 版本的导入,该怎么处理?
万恶之源都是:混合使用了不同版本(v3 vs v4)或不同来源(go-micro.dev/v4 vs github.com/asim/go-micro/v3)的模块和工具链。
根治方案就是确保一致性:
1)统一选择版本:明确决定使用 v3 还是 v4;
2)清理环境:清除错误的依赖和旧生成文件
a)把旧工具(v4)一定要先删掉:
查看环境变量:
where protoc-gen-micro
b)再下载v3:
go install github.com/asim/go-micro/cmd/protoc-gen-micro/v3@latest
3)安装匹配的工具:安装与你选择的库版本相匹配的 protoc-gen-micro 插件。
4)重新生成代码:用正确的插件重新生成所有 Proto 代码。