Open halyph opened 3 years ago
import sbt._
import sbt.Keys._
import sbtprotoc.ProtocPlugin.autoImport._
object ScalaPBSettings {
val default: Seq[SettingsDefinition] = {
(inConfig(Test)(sbtprotoc.ProtocPlugin.protobufConfigSettings): SettingsDefinition) +:
Seq(Compile, Test).map { configuration =>
configuration / PB.targets := Seq(
scalapb.gen(grpc = false) -> (configuration / sourceManaged).value / "protobuf"
)
}
}
}
lazy val `akka-http-scalapb` = (project in file("."))
.dependsOn(`akka-http-scalapb-binary`, `akka-http-scalapb-json4s`)
.aggregate(`akka-http-scalapb-binary`, `akka-http-scalapb-json4s`)
.settings(commonSettings: _*)
.settings(ScalaPBSettings.default: _*)
lazy val `akka-http-scalapb-binary` = (project in file("binary"))
.settings(commonSettings: _*)
.settings(ScalaPBSettings.default: _*)
lazy val `akka-http-scalapb-json4s` = (project in file("json4s"))
.settings(commonSettings: _*)
.settings(ScalaPBSettings.default: _*)
.settings(
libraryDependencies ++= Seq(
Dependencies.scalaPbJson4s
)
)
Nice sbt sample, expecially ScalaPB usage in multi-module projects.
https://github.com/RustedBones/akka-http-scalapb/blob/master/build.sbt