问题标签 [scalapb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
460 浏览

scala - scalapb 和自定义源生成器冲突

我希望向 sbt 添加一个自定义源生成器,并将其与 Scala 协议缓冲区生成器 scalapb 一起使用。每个都单独工作。但是,当两者结合时,项目在清理后第一次无法编译。如果我再次运行编译,它会成功。

错误信息:

要重现此错误,您需要在 src/main/protobuf 中至少有一个 proto 文件。

让我感到困惑的是,两个源生成器,我的自定义任务和 scalapb 会发生冲突。他们不应该都写入 src_managed 目录吗?我错过了一些基本的 sbt 概念吗?

0 投票
1 回答
135 浏览

scala - 有什么方法可以将 ScalaProtobuf 插件的清理任务移出主要的“sbt clean”任务?

我正在使用这个 scala protobuf 插件:https ://scalapb.github.io/

我遇到了一个问题,每次我运行“sbt clean”时,生成的 protobuf 文件也会被清理。

有什么办法可以配置插件,使 scalapb 的清理任务不是 sbt clean 任务的一部分?(又名“sbt clean”只会清理目标文件夹)

谢谢!任何帮助真的很感激!

0 投票
1 回答
148 浏览

apache-spark - 如何从 com.trueaccord.scalapb 生成的源创建 jar 文件

我正在使用 ScalapB 为 protobuf 模式生成源代码。效果很好。如何生成仅包含生成的源代码的 jar。我想创建一个 jar 文件并将其作为依赖项添加到 Zeppelin Spark Interpreter。

0 投票
1 回答
902 浏览

java - Scala (java) grpc 异步拦截器状态传播

问题标题可能信息量不大,因为我正在尝试实现多种功能。我想根据他发送的标头授权调用者并将此信息传播到 gRPC 方法处理程序。问题在于授权过程的异步性质。我最终得到了这个:

这有效(我的意思是,运行没有异常:)),但是当我AuthInterceptor.BOTID_CONTEXT_KEY.get在我的方法处理程序中这样做时,它会产生null.

也许,有更好的方法来处理异步的东西?

0 投票
0 回答
1156 浏览

protocol-buffers - *.proto 文件被忽略

我尝试使用 protobuffers 和 scalaPB,我添加了:

和下面的行到 plugins.sbt

和 src/main/protobuf 下的 .proto 文件:

但是使用 sbt compile 没有任何反应——目标中没有生成类。文件被忽略,因为即使在 protobuf 文件项目中有一些拼写错误,仍然可以编译。我还尝试使用查看调试日志

但唯一提到的文件 .proto 有一些内部文件,例如:/target/protobuf_external/google/protobuf/source_context.proto

我该如何继续呢?我可以获得更多关于 scalaPB 正在查看的信息吗?

0 投票
2 回答
1922 浏览

protocol-buffers - 将第三方 .proto 文件引入 ScalaPB

我如何告诉ScalaPB它应该.proto从 Internet 获取依赖项,例如

google/api/annotations.proto来自https://github.com/googleapis/googleapis/tree/master/google/api

背景:

目的是通过 gRPC 从 Scala 读取 etcd v3 API。

.proto从他们的项目中挑选了 etcd 特定的文件,并放在我的下面。有用。但是,依赖关系开始深入运行,必须有更好的方法。

https://github.com/googleapis/googleapis/tree/master/google/api

0 投票
1 回答
79 浏览

scala - 可以使用 protobuf 2.5.0 运行最新版本的 ScalaPB (0.6.x) 吗?

有人试过吗?我需要为 protobuf 2.5.0 生成 scala 类似乎 ScalaPB 支持 protobuf 3.x 而不是 2.5.0

0 投票
1 回答
1786 浏览

scala - scalapb 生成的 proto 中的未知字段

我是 scalapb 和 protobuf 的新手。

我正在尝试为我的 scalapb 生成器创建单元测试。我已经生成了 proto 文件并尝试在测试中使用它们。

我有这个原型文件:

有注释的方法 CalcSum

以及对应生成的proto文件:

我在 intellj 想法中检查 CalcServiceProto.javaDescriptor:

在此处输入图像描述

方法描述符有这个原型定义:

但是发电机工作得很好!我调试生成器,在生成器和方法 CalcSum 上切换断点有这个原型定义:

可能这会有所不同,因为我没有像生成器那样注册扩展。

我希望通过任何方式通过此测试:

0 投票
0 回答
560 浏览

scala - Protobuf 输入验证和模型翻译

我在一家公司,我们目前正在使用 protobuf3(在我的情况下使用 scalapb)进行很多内部通信。由于 'required is forever' 参数,这个版本的 protobuf 取消了以前版本中的optional和标签。required我可以从协议的角度理解这个论点,但是当所有嵌套消息都包装在Options.

恕我直言,简单而丑陋的解决方案是在myProto.myField.getOrElse {throw Exception("bla"}访问消息字段时只做,但我不希望getOreElse在必须存在该字段时在我的代码库中撒上大量的 s。

我的问题是,是否有:

  1. 一个可以帮助我使用我自己的案例类将 protobuf 消息转换为我的域模型的库?或者
  2. 在没有大量样板的情况下,我自己以一种通用的方式(相对)简单地做到这一点?我自己做了一些反思,但我对 Scala 还很陌生。scalapb.descriptors.FieldDescriptor如何将 a 映射到正确类型的实际值并不明显。

谢谢

0 投票
1 回答
1880 浏览

scala - Scala 代码生成类型不匹配 (ScalaPB)

  1. 我有一个 protobuf 文件...
  2. 我使用 ScalaPB 将其转换为 Scala 文件。这样我就可以...
  3. 在我的 Juypter notebook* 中使用它进行转换。可悲的是,当我...
  4. 运行特定的单元格我得到一个类型不匹配的错误,我不知道为什么?

由于 protobuf 文件与 Python 一起使用并生成了 Scala 代码,所以这里有什么不妥之处?这可能是一个错误吗?

*笔记本com.google.protobuf:protobuf-java:3.5.0,com.thesamet.scalapb:sparksql-scalapb_2.11:0.7.0用作进口

来源和错误

protobuf 文件:

Scala(生成)代码

错误