我一直在使用 protoc 毫无问题地生成 golang gRPC 客户端和服务器代码。由于我有多个使用相同数据类型的 gRPC 服务,我想为这些类型引用 base.proto 而不是复制和粘贴,这是额外的工作,可能会导致不同步问题。
下面是 base.proto 的示例:
syntax = "proto3";
package base;
message Empty {
}
message Label {
string Key = 1;
string Value = 2;
}
这是一个特定的 .proto 示例:
syntax = "proto3";
import = "base.proto";
package publisher;
service ClientPublisher {
rpc Publish(stream base.Label) returns (base.Empty) {}
}
而且,这是我的命令:
protoc -I system-client-go/ system-client-go/client/publisher.proto --go_out=plugins=grpc:system-client-go --proto_path=system-client-go/
无论我尝试什么,它都会抛出这个:
2019/08/01 15:31:31 protoc-gen-go: error:bad Go source code was generated: 273:7: expected type, found '.' (以及另外 10 个错误)对应于以下行: rpc Publish(stream base.Label) returns (base.Empty) {}
有任何想法吗?