scalapbの構文を理解するのが難しいです。特に、マルチプロジェクトSBTビルド用に複数の.protoソースディレクトリを追加しようとしています。マルチプロジェクトSBTビルドに複数のscalapbソースディレクトリを追加する
次のように私のプロジェクト構造は次のように
/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 [OK]を
...ここにいくつかの基本的な概念を理解するために失敗してるので、私はprotoDirectoriesのための間違ったシーケンスを指していました。私は新しい変更を反映するためにbuild.sbtを修正しました。 .protoファイルがサブプロジェクトでコンパイルされていないという問題がまだあります。私の.protoファイルをroot/main/src/protobufに移動すると、うまくコンパイルされます。