Я пытаюсь использовать scalapb
для генерации case-классов из моего protobuf. Но я в настоящее время ошибки компиляции.
У меня есть scalapb.sbt
следующим образом:
addSbtPlugin("com.trueaccord.scalapb" % "sbt-scalapb" % "0.5.26")
libraryDependencies ++= Seq(
"com.trueaccord.scalapb" %% "compilerplugin" % "0.5.26",
"com.github.os72" % "protoc-jar" % "3.0.0-b2.1"
)
И мой build.sbt
выглядит следующим образом:
// for scalapb
import com.trueaccord.scalapb.{ScalaPbPlugin => PB}
PB.targets in Compile := Seq(
scalapb.gen() -> (sourceManaged in Compile).value
)
PB.protobufSettings
PB.runProtoc in PB.protobufConfig := (args =>
com.github.os72.protocjar.Protoc.runProtoc("-v241" +: args.toArray))
libraryDependencies ++= Seq(
"io.grpc" % "grpc-netty" % "0.14.0",
"com.trueaccord.scalapb" %% "scalapb-runtime-grpc" % (PB.scalapbVersion in PB.protobufConfig).value
)
Кроме того, я создал пример файла .proto src\main\protobuf
следующим образом:
syntax = "proto2"
package org.pk.stream.protos
message Tweet {
required string filter_level = 1;
}
Теперь, когда я пытаюсь sbt compile
, я получаю следующую ошибку:
S:\MyRepos\LogStreaming>sbt compile
[info] Loading global plugins from C:\Users\pkumar25\.sbt\0.13\plugins
[info] Loading project definition from S:\MyRepos\RLoggerStreaming\project
S:\MyRepos\LogStreaming\build.sbt:21: error: object trueaccord is not a
member of package com
import com.trueaccord.scalapb.{ScalaPbPlugin => PB}
^
sbt.compiler.EvalException: Type error in expression
[error] sbt.compiler.EvalException: Type error in expression
[error] Use 'last' for the full log.
Project loading failed: (r)etry, (q)uit, (l)ast, or (i)gnore? q
Может ли кто-нибудь помочь мне решить эту ошибку?
Я также немного запутался между версиями scalapb
, com.thesamet.scalapb
(https://scalapb.github.io/sbt-settings.html) и com.trueaccord.scalapb
(https://mvnrepository.com/artifact/com.trueaccord.scalapb).) Мне интересно, какую из них использовать и как ее использовать? метко?
Очень ценится!