halyph / mind-flow

blog and/or personal knowledge base
https://halyph.github.io/blog/
Creative Commons Attribution Share Alike 4.0 International
25 stars 6 forks source link

akka-http-scalapb #107

Open halyph opened 3 years ago

halyph commented 3 years ago

Nice sbt sample, expecially ScalaPB usage in multi-module projects.

https://github.com/RustedBones/akka-http-scalapb/blob/master/build.sbt

halyph commented 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
    )
  )