Java
background and thinking of learning Scala
.Maven
is that I can make
You can definitely do it. It's called SBT Multi-Project build. You can define one master project and multiple child projects with something like this (from the docs link above):
import sbt._
import Keys._
object HelloBuild extends Build {
lazy val root = Project(id = "hello",
base = file(".")) aggregate(foo, bar)
lazy val foo = Project(id = "hello-foo",
base = file("foo"))
lazy val bar = Project(id = "hello-bar",
base = file("bar"))
}
Each project can be built separately, you can also package each into a separate JAR, or combine them all into a single master JAR. Each project can define it's own dependencies, but they can also be shared if needed. Basically you have full control. Take a look at my project build file here for example.