Object Proto已定义

时间:2018-04-20 13:01:31

标签: scala sbt protocol-buffers scalapb

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

这是我的日志:

  

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

     

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

     

[...]

     

[error] /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)

我的插件.bt

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{}

1 个答案:

答案 0 :(得分:0)

首先,您的库依赖项指向版本0.6.6,并且您的compilerplugin指向0.7.1。请将您的libraryDependencies更新为:

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

最后不需要scalapb-runtime而不包含% "protobuf",因为sbt-protoc会自动为您添加。

如果这不能解决您的问题,请尝试查看您是否真的有" IngInfo"在Scala文件中定义了多次。您的项目是否可能在项目中具有相同名称的类?有时,当您将生成文件的目录更改为旧版本时,会发生这种情况。

相关问题