【问题标题】:grpc-gateway runtime version conflictgrpc-gateway 运行时版本冲突
【发布时间】:2021-06-02 23:47:50
【问题描述】:

从最近几天开始,protoc 生成器正在使用 github.com/grpc-ecosystem/grpc-gateway 的 v2 版本生成代码。我想继续使用 github.com/grpc-ecosystem/grpc-gateway v1.16.0。我无法删除导致冲突的 v2 版本。我尝试从 go.mod 中删除,从 $GOPATH 中清除。我想我的协议生成器无法使用 v1 版本。请指导我如何同步 grpc-gateway 运行时包。

使用以下命令生成消息和服务

protoc -I . --go-grpc_out=. api/protobuf-spec/catalog_fetch/*.proto
protoc -I . --grpc-gateway_out=logtostderr=true:. api/protobuf-spec/catalog_fetch/*.proto

注意:它同时生成 grpc.pb.go 文件和 pb.go 文件,这进一步导致问题。

cannot use mux (type *"github.com/grpc-ecosystem/grpc-gateway/runtime".ServeMux) as type *"github.com/grpc-ecosystem/grpc-gateway/v2/runtime".ServeMux ```

【问题讨论】:

    标签: grpc-go grpc-gateway protobuf-go


    【解决方案1】:

    我花了 3 个小时调试完全相同的问题。

    您必须从 GOPATHGOROOT 中删除二进制文件。

    为简单起见,只需使用which protoc-gen-grpc-gateway

    这应该指向您正在使用的二进制文件protoc。删除它并重新运行go get -u github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway@v1.16.0

    【讨论】:

    • 非常感谢!那是工作。对我来说,我删除了:“$gopath/bin/protoc-gen-grpc-gateway.exe”文件和“$gopath/src/github.com/grpc-ecosystem”文件夹,然后重新安装protoc-gen-grpc -gateway 使用 tri tran minh 方式。
    【解决方案2】:

    我想你已经安装了v2 版本的生成器。不幸的是,您不能将 v1.16.0 与较新版本的 go protobuf 生成器一起使用。如果你想继续使用v1.16.0,你可以从发布页面https://github.com/grpc-ecosystem/grpc-gateway/releases/tag/v1.16.0下载生成器。

    【讨论】:

      猜你喜欢
      • 2019-08-07
      • 2021-01-13
      • 1970-01-01
      • 2020-07-16
      • 2016-01-09
      • 2015-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多