У меня возникли трудности с пониманием синтаксиса для scalapb, в частности, я пытаюсь добавить несколько исходных каталогов .proto для многопроектной сборки SBT.Добавить несколько скалярных исходных каталогов в Multi-Project SBT Build
Моя структура проекта выглядит следующим образом:
/build.sbt
/main/src/protobuf
/common/main/src/protobuf
/client/main/src/protobuf
Мой build.sbt выглядит следующим образом:
name := "myApp"
import Dependencies._
import com.trueaccord.scalapb.{ScalaPbPlugin => PB}
val protoDirectories = Seq(
file("common/src/main/protobuf"),
file("client/src/main/protobuf")
)
sourceDirectories in PB.protobufConfig ++= protoDirectories
PB.protobufSettings ++ Seq(
flatPackage := false
)
lazy val common = (project in file("common")).
settings(Commons.settings: _*).
settings(libraryDependencies ++= commonDependencies)
lazy val client = (project in file("client")).
settings(Commons.settings: _*).
settings(libraryDependencies ++= clientDependencies).
dependsOn(common)
Когда я бегу sbt compile
, я получаю следующее сообщение об ошибке:
[error] Reference to undefined setting:
[error]
[error] sphere/*:sourceDirectories from myApp/*:sourceDirectories (<path_to_project_dir>\build.sbt:11)
[error] Did you mean myApp/protobuf:sourceDirectories ?
Может ли кто-нибудь указать мне в правильном направлении? Я не в состоянии понять некоторые основные концепции здесь ...
EDIT
Итак, я указывал на неправильную последовательность для protoDirectories. Я изменил build.sbt, чтобы отразить новые изменения. У меня все еще есть проблема, что мои файлы .proto не скомпилированы в подпроектах. Если я перемещаю свои файлы .proto в файл root/main/src/protobuf, они просто компилируются.