-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathbuild.sbt
62 lines (56 loc) · 2.15 KB
/
build.sbt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
lazy val freesV = "0.4.6"
lazy val commonSettings: Seq[Def.Setting[_]] = Seq(
resolvers += Resolver.bintrayRepo("beyondthelines", "maven"),
addCompilerPlugin("org.scalameta" % "paradise" % "3.0.0-M10" cross CrossVersion.full),
libraryDependencies ++= Seq(
"io.frees" %% "frees-core" % freesV,
"io.frees" %% "frees-async-cats-effect" % freesV,
"io.frees" %% "frees-rpc" % "0.4.1",
"org.scalameta" %% "scalameta" % "1.8.0",
"joda-time" % "joda-time" % "2.9.9",
"com.github.tototoshi" %% "scala-csv" % "1.3.5"),
scalacOptions ++= Seq("-Xplugin-require:macroparadise", "-Ywarn-unused-import"),
scalacOptions in(Compile, console) ~= (_ filterNot (_ contains "paradise")) // macroparadise plugin doesn't work in repl yet.
)
// Common module:
lazy val `functional-microservices` = project
.in(file("."))
.settings(name := "functional-microservices")
.settings(moduleName := "functional-microservices")
.settings(description := "Freestyle at Scala eXchange")
.settings(commonSettings)
// Data Generator:
lazy val `data-generator` =
project.in(file("data-generator"))
.settings(moduleName := "data-generator")
.settings(commonSettings)
.aggregate(`functional-microservices`)
.dependsOn(`functional-microservices`)
.settings(
libraryDependencies ++= Seq(
"io.monix" %% "monix" % "3.0.0-M2",
"org.scalacheck" %% "scalacheck" % "1.13.4",
"com.47deg" %% "scalacheck-toolbox-datetime" % "0.2.3"
)
)
// RPC definitions and implementations:
lazy val services = project
.in(file("services"))
.settings(moduleName := "rpc-services")
.settings(commonSettings)
.aggregate(`functional-microservices`, `data-generator`)
.dependsOn(`functional-microservices`, `data-generator`)
// RPC Server.
lazy val server = project
.in(file("server"))
.settings(moduleName := "rpc-server")
.settings(commonSettings)
.aggregate(services)
.dependsOn(services)
// Our application where we will test everything we are building:
lazy val app = project
.in(file("app"))
.settings(moduleName := "app")
.settings(commonSettings)
.aggregate(`data-generator`, services)
.dependsOn(`data-generator`, services)