grpc - 从不同的包导入 proto 文件
问题描述
我有两个服务:故事和标签。这些文件的结构如下:
Story
|-- StoryService
| `-- proto
| `-- storyservice.proto
`-- TagService
`-- proto
`-- tagservice.proto
每个.proto
文件都需要使用来自另一个文件的消息。如何将它们相互导入?我试过import "StoryService/proto/storyservice.proto"
了,但没有用。
解决方案
如果使用protoc
,则导入指令的所有搜索路径都应相对于-I
( --proto_path
) 参数中列出的文件夹之一。例如,如果您运行protoc -I/path/to/Story --go_out=out StoryService/proto/storyservice.proto
,它将能够导入TagService/proto/tagservice.proto
(因为它的路径是相对于Story
中列出的文件夹-I
)。
话虽如此,您实际上并不需要让每个 proto 文件都导入另一个。递归 proto 文件导入不适用于类似于此的错误消息:
a.proto: File recursively imports itself: a.proto -> b.proto -> a.proto
推荐阅读
- flutter - 将类变量转换为 dart 中的映射
- algorithm - 关于quickSort中递归条件的问题
- c# - Visio-如何在运行时从 Stencil 隐藏 Master
- visual-studio - 创建的应用程序转移到工作中的计算机抛出异常是危险的。视觉工作室
- python - ValueError:收到的“数据”属性无效元素
- macos - fpm 已安装,但无法在 Mac Mojave 上运行
- django - Django Rest 框架抛出 IntegrityError。“creator_id”列中的空值违反非空约束
- r - 在 R 潜在变量分析中理解问题并得到错误 Lavaan 包
- api - 在小酒馆中出现错误“预计此文件中只有一个文档,但发现多个”
- c# - 如何在 C# 中使用 Microsoft Graph 库使用 $value