有没有办法在 protoc 编译期间在 grpc.pb.go 中导入生成的结构?

我将为从 proto 消息生成的结构和从 grpc 服务生成的接口指定不同的输出目录。

我用这两个标志实现了这一点:

--go_out=internal/proto
--go-grpc_out=internal/grpc

生成 internal/proto 包后并没有导入到 mymodel_grpc.pb.go 文件中,但如果有任何标志在编译期间自动执行此操作会非常方便。

我假设 --go-grpc_opt 标志可以有这样的选项,但我找不到。

这种场景的任何体验都很有趣。


紫衣仙女
浏览 97回答 1
1回答

犯罪嫌疑人X

如果我理解正确,您想在一个包中生成 protobuf 消息,在另一个包中生成服务绑定。Protobuf 文件包含一个package指令,这可以绑定到options指令,例如对于 Go(lang) 使用go_package=. 绑定为1:1;一个包(及其消息|服务)绑定到一个例如 Go 包。注意Protobuf 也支持多种语言,因此它必须提供可以应用一次(在 Protobuf 文件中)但多次使用(在每种语言的生成代码中)的通用解决方案。所以,我认为你的解决方案是将你的消息和服务分成不同的包(具有不同options和go_package规范)。然后,protoc可以引导生成这些以分离 Golang 包。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go