Scala 对象原型已定义

Scala 对象原型已定义,scala,sbt,protocol-buffers,scalapb,Scala,Sbt,Protocol Buffers,Scalapb,我正在使用Scala 2.11.8并尝试添加protobuf 这是我的日志: [info]协议目标目录:/home/user/Git/tortle/target/src_managed/main [info]协议目标目录:/home/user/Git/tortle/target/src_managed/main [……] [错误]/home/user/Git/tortle/target/src_managed/main/msgsp/IngInfo/IngInfo。scala:46:IngInfo

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

这是我的日志:

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

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

[……]

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

[错误]最终案例类InInfo(

[错误]发现60个错误

拜托,我做错什么了

我尝试了很多方法,但这个错误总是会再次出现:/ 谢谢

My 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"
My*.proto文件位于src/main/protobuf文件夹中,并以如下方式开始:

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

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

libraryDependencies ++= Seq(
  "com.thesamet.scalapb"     %% "scalapb-runtime"     % "0.7.1" % "protobuf")
)
没有必要在末尾包含
scalapb runtime
而不包含
%“protobuf”
,因为sbt protoc会自动为您添加它


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

您能找到生成的代码中定义了
InInfo
的位置吗?您能编辑protobuf文件吗并移除碎片,查看错误是否移动或消失?在目标文件夹中生成两个文件:target/src_managed/main/msgsp/IngInfo/IngInfo.scala target/src_managed/main/msgsp/IngInfo/IngInfoProto.scala错误再次出现:/