当前位置: 首页 > 知识库问答 >
问题:

使用proto3版本时无法生成pb文件。[节点]

隆向晨
2023-03-14

1、我添加grpc工具。

2.cmd命令:protoc--js\u out=import\u style=commonjs,二进制:。/--插件=protoc gen grpc=/grpc\u node\u插件。exe—grpc\U out=。/Uhdin接口。原型

3.终于报错了

Uhdin接口。proto:是一个包含可选字段的proto3文件,但代码生成器protoc gen grpc尚未更新以支持proto3中的可选字段。请要求此代码生成器的所有者支持proto3可选--grpc\U输出

共有3个答案

宁锐
2023-03-14

您的同事是对的,从v3.15.0开始,您可以将可选与Ayush之前链接的原型一起使用。

您的特殊问题是因为需要更新io。grpc:依赖关系树中的protoc gen grpc java。

我使用v3.15.0与Maven和必须更新我的<代码>io.grpc:协议-gen-grpc-java如下所示:

<pluginArtifact>
  io.grpc:protoc-gen-grpc-java:${grpc.version}:exe:${os.detected.classifier}
</pluginArtifact>

其中,<代码>${grpc.version}=<代码>1.31.0。在回购协议中查看更多信息

姚俊贤
2023-03-14

Prover3不再支持可选必需在消息定义中归档,只需删除UHDInterface.proto中的这些字段

您可以参考为什么messge type remove“必需,可选”?了解更多详细信息。

仲孙翔飞
2023-03-14

从protobuf 3.15.0开始,proto3完全支持可选的(实验支持是在v3.12.0中添加的,但需要向protoc传递一个--experimental\u allow\u proto3\u optional标志)。

我还觉得奇怪的是,语言指南(proto3)中还没有对其进行记录,但您可以在这里找到一些很棒的文档和示例—Protobuf Field Presence。

要使用关键字从proto文件生成gRPC文件,请确保使用的是最新的插件。对于JavaScript,您可以使用包含在grpc工具NPM包中的可执行文件——plugin=protoc-gen-grpc\u js=/node\u模块/。bin/grpc\u tools\u node\u protoc\u插件。

或者,对于其他语言(例如Python的grpcio工具不幸不包括grpc\u Python\u插件可执行文件,但在Python-m grpc\u tools.protoc中包含此功能),您可以尝试构建grpc repo以获取二进制文件。

请让我知道,如果有什么是不清楚的,我可以编辑!

 类似资料:
  • 安装 protoc-gen-doc 简单遵循安装要求即可: https://github.com/estan/protoc-gen-doc 安装完成之后的protoc是2.5.0版本,无法处理proto3的文件。因此我们需要升级替换protoc为v3.0.0版本。 升级protoc 使用预编译版本 下载 请先在 protobuf 的 发布页面 中找到对应版本的 download ,然后下载对应版本

  • 我一直在试图让汽车制造商自动决定如何建造。pb。抄送和。pb。来自google协议缓冲区的hh文件。原型描述,但没有运气。 我试过在SO上使用这篇文章,但仍然不起作用。 这是我的Makefile的摘录。是: 尝试运行make时,我得到: ac\u proto\u cmd由configure填充到protoc二进制文件的路径。ac,当它检查GPB依赖关系时。我已经验证了它的格式是“/opt/comm

  • 好的,所以最近我一直在尝试在Android Studio(1.1.0)上运行我的应用程序,但是每次尝试运行的时候,都会弹出以下错误: 注意:我最近导入了一个jar文件,从那以后,问题就开始了。不确定这是否重要。

  • 当我尝试使用Makefile命令生成proto文件时-,我得到这个错误- 当我运行which go时,我有: 哪个协议返回此- 下面是我的<代码>。zshrc看起来像: 我也安装了插件 请否则我应该添加我的以避免此错误吗?

  • 日安...当对APK进行更改时,当应用程序是在游戏商店或应用商店里,如何使版本代码和版本名称在codenameone中像“Menifest文件”一样,以便现有用户将收到我们的更新。

  • 我试图在maven构建期间生成swagger.json文件。 这是我在pom.xml中从docs获得的插件。 任何帮助都将不胜感激。