问题标签 [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 回答
193 浏览

scala - 使用 ScalaPBC 为 Scala 2.10 编译协议缓冲区?

我正在尝试使用 Trueaccord 的 ScalaPBC 将一个简单的 protobuf 文件编译为 Scala。我仅限于 Scala 2.10,并且由于对案例类的实现限制(“案例类不能有超过 22 个参数”),因此无法编译生成的类。

我将 Trueaccord 的 scalapb-runtime 和 compilerplugin 用于 Scala 2.10 版本 0.4.20 和 protobuf-java 版本 2.6.1。

这是我正在编译的 protobuf(这些字段实际上没有任何意义):

有没有办法将上面的 protobuf 编译成适用于 Scala 2.10 的 Scala 代码?

0 投票
2 回答
2134 浏览

java - 使用 ScalaPB 中的协议缓冲区生成 Java 和 Scala 类

我一直在使用sbt-protobuf从 proto 定义文件生成 Java 类。我现在也想生成 Scala 类。为此,我尝试使用ScalaPB插件。目标是src/main/protobuf/在项目中有一个目录,并根据这些定义生成 Java 和 Scala 类。

问题是当我在我的项目中添加 ScalaPB 依赖项时,它会停止生成 Java 类(它只生成 Scala 案例类)。

事实上,试图修改任何传统的 sbt-protobuf 设置,总是会导致这个(或类似的)错误消息:

我不确定这两个问题是否相关。想法是更改protocOptions以强制生成 Java 类。

0 投票
1 回答
1292 浏览

scala - 如何通过 Akka Tcp 发送和接收 protobuf 消息

我将ScalaPB用于我的 protobuf 编译器,它为我的协议缓冲区生成 Scala 案例类、解析器和序列化程序。

由于 ScalaPB,我在 .proto 文件中有一个简单的 protobuf 消息,该文件已编译为 Scala 案例类。

该文件已编译并允许我执行以下操作:

我有一个 Akka 演员处理 TCP 连接。

如果我向 my 发送Moveprotobuf 消息PacketHandler,它是否会成功匹配我的Move案例类以及我如何编写 my receive

如何发送Moveprotobuf 消息?假设当它成功匹配Moveprotobuf 消息时,它会回显它。

我没有客户来测试我的PacketHandler演员,所以我一直在使用 telnet。

了解编码消息的确切外观也很有用,Move这样我就可以通过 telnet 创建连接并通过线路发送编码消息并测试它在到达时是否被解码PacketHandler

0 投票
2 回答
5268 浏览

scala - 如何序列化/反序列化使用 ScalaPB 的“oneof”的 protobuf 消息?

我正在使用 ScalaPB 编译我的 Scala 案例类以序列化我的 protobuf 消息。

我有一个.proto包含以下消息的文件:

我如何WrapperMessage知道我想在Login里面放一条消息msg

现在假设我正在WrapperMessage通过网络收到一个;如何使用 ScalaPB 案例类方法反序列化消息?

0 投票
1 回答
1764 浏览

scala - 将多个 scalapb 源目录添加到多项目 SBT 构建

我在理解 scalapb 的语法时遇到了一些困难,特别是我正在尝试为多项目 SBT 构建添加多个 .proto 源目录。

我的项目结构如下:

我的 build.sbt 如下:

当我运行时sbt compile,我收到以下错误消息:

有人可以指出我正确的方向吗?我在这里无法理解一些基本概念......

编辑

好的,所以我指向了 protoDirectories 的错误顺序。我已经修改了 build.sbt 以反映新的变化。我仍然有一个问题,我的 .proto 文件没有在子项目中编译。如果我将 .proto 文件移动到根目录 /main/src/protobuf,它们编译得很好。

0 投票
1 回答
660 浏览

scala - 在 SBT 任务中手动调用 ScalaPB 编译器

我正在使用ScalaPB来合成 Scala 类,以便将我的数据与Protobuf表示进行转换。默认情况下,SBT 安装程序会钩入sbt compile以生成文件夹下的target文件。

因为我希望我的.proto文件很少更改,所以我宁愿在它们发生更改时手动调用 ScalaPB 进程,并将生成的文件置于版本控制之下。这与我用于Slick 的代码生成功能的方法相同。

我可以做类似的事情:

但我不确定如何使用自定义输入和输出从 SBT 调用该过程。

我最近的尝试:

我收到以下错误:

0 投票
0 回答
478 浏览

scala - ScalaPB 在 build.sbt 中无法识别

按照 scalaPB 的说明,我已将该文件添加project/scalapb.sbt到我的 intelli j 项目中。这是文件本身 addSbtPlugin("com.trueaccord.scalapb" % "sbt-scalapb" % "0.4.20")

我已将以下几行添加到我的build.sbt

我遇到的问题是,当 intelli j 尝试刷新 sbt 构建时,它有以下消息:illegal start of simple expression import com.trueaccord.scalapb.{ScalapbPlugin => PB}

0 投票
1 回答
130 浏览

scala - 如何将嵌套消息添加到已创建的消息中?(在斯卡拉)

添加嵌套消息后,我从主消息中收到嵌套消息,但一无所获。

您可以在日志中看到它:1 和 2。列表 0 的大小!

有任何想法吗?

在此处输入图像描述

0 投票
1 回答
483 浏览

scala - 在akka post路由上缺少FromRequestUnmarshaller [Entity]

首先让我说我对 akka-http 很陌生,我所读的书都没有很好地涵盖编组主题。所以这对我来说有点像黑匣子。我能够获得以下 (Un)Marsheller,它能够根据请求标头返回 json 和 protobuf。

这部分代码工作正常,我在 akka-http 中定义了一个 get 路由,它工作正常。

我面临的问题是在邮寄路线上。

在编译期间,我收到以下错误

我不确定我到底错过了什么。我需要定义一个implicit FromRequestUnmarshaller吗?如果是这样,它应该有什么?

0 投票
1 回答
385 浏览

maven - 来自 https://github.com/aegnor/scalapb-maven-example 的 scalapb-maven-example 给了我错误

我正在尝试从https://github.com/aegnor/scalapb-maven-example运行示例,但出现以下错误。

[错误] 无法在项目 scalapb-maven 上执行目标 org.codehaus.mojo:exec-maven-plugin:1.5.0:java (generate-scala-protobuf-classes):执行目标 org 的 generate-scala-protobuf-classes .codehaus.mojo:exec-maven-plugin:1.5.0:java 失败:插件 org.codehaus.mojo:exec-maven-plugin:1.5.0 或其依赖项之一无法解析:未能找到 com.trueaccord https://repo.maven.apache.org/maven2中的.scalapb:scalapbc:jar:0.4.20已缓存在本地存储库中,直到中央的更新间隔已过或强制更新后才会重新尝试解析 -> [帮助1]