0

我正在使用 Scala 2.11.8 并尝试添加 protobuf。

这是我的日志:

[信息] 协议目标目录:/home/user/Git/tortle/target/src_managed/main

[信息] 协议目标目录:/home/user/Git/tortle/target/src_managed/main

[...]

[错误] /home/user/Git/tortle/target/src_managed/main/msgsp/IngInfo/IngInfo.scala:46: IngInfo已经定义为案例类IngInfo

[错误] 最终案例类 IngInfo(

[错误] 发现 60 个错误

请问,我做错了什么?

我已经尝试了很多东西,但这个错误总是回来:/谢谢。

我的 build.sbt :

libraryDependencies ++= Seq(
"com.trueaccord.scalapb"     %% "scalapb-runtime"     % "0.6.6",
"com.trueaccord.scalapb"     %% "scalapb-runtime"     % "0.6.6" % "protobuf")
PB.targets in Compile := Seq(
PB.gens.java -> (sourceManaged in Compile).value,
scalapb.gen(javaConversions = true) -> (sourceManaged in Compile).value)

我的插件.sbt

addSbtPlugin("com.thesamet" % "sbt-protoc" % "0.99.18")
libraryDependencies += "com.thesamet.scalapb" %% "compilerplugin" % "0.7.1"

我的 *.proto 文件位于 src/main/protobuf 文件夹中,并像这样开始:

syntax = "proto3";
package msgsp;
message Tortle{}
4

1 回答 1

0

首先,您的库依赖项指向版本 0.6.6,而您的编译器插件位于 0.7.1。请将您的 libraryDependencies 更新为:

libraryDependencies ++= Seq(
  "com.thesamet.scalapb"     %% "scalapb-runtime"     % "0.7.1" % "protobuf")
)

没有必要在末尾包含scalapb-runtime% "protobuf"因为 sbt-protoc 会自动为您添加。

如果这不能解决您的问题,请尝试查看您是否真的在 Scala 文件中多次定义了“IngInfo”。您的项目是否可能在您的项目中已经有一个同名的类?有时,当您将生成文件的目录更改为旧副本仍然存在时,会发生这种情况。

于 2018-04-21T12:22:43.523 回答