【问题标题】:Protoc generates GRPC .pb.go and grpc.pb.go files in different directoriesProtoc 在不同目录下生成 GRPC .pb.go 和 grpc.pb.go 文件
【发布时间】:2022-10-15 00:54:58
【问题描述】:

我在名为github.com/myuser/myrepo/protos/iam/v1/service.proto 的文件中声明了一个 GRPC 服务和相关请求。此文件的标头如下所示:

syntax = "proto3";
package myrepo.iam.v1;

option go_package = "github.com/myuser/myrepo-go/iam/v1"; // golang

现在,当我尝试使用 myrepo 目录中的以下 protoc 命令编译它时:

find ./protos -type f -name "*.proto" -exec protoc --go_out=./gopb --go-grpc_out=./gopb --go_opt=module=github.com/myuser/myrepo-go {} \;

此命令有效并生成两个文件:

gopb /
- iam /
  - v1 /
    - service.pb.go
- github.com /
  - myuser /
    - myrepo-go /
      - iam /
        - v1 /
          - service_grpc.pb.go

在这些文件中,service.pb.go 的位置正确,但我不确定为什么 service_grpc.pb.go 位于它所在的位置。如何确保两个文件都写入gopb/iam/v1/

【问题讨论】:

    标签: grpc protoc protobuf-go


    【解决方案1】:

    您需要为 gRPC 复制 --go_opt=module= 标志,即 --go-grpc_opt=module=github.com/myuser/myrepo-go

    protoc 
    --go_out=./gopb 
    --go_opt=module=github.com/myuser/myrepo-go
    --go-grpc_out=./gopb 
    --go-gprc_opt=module=github.com/myuser/myrepo-go 
    service.proto
    

    【讨论】:

      猜你喜欢
      • 2021-05-16
      • 1970-01-01
      • 2018-11-15
      • 2021-12-23
      • 1970-01-01
      • 2022-08-02
      • 2015-09-10
      • 2017-09-07
      • 1970-01-01
      相关资源
      最近更新 更多