I have the following setup of a Scala application and a common core library: root
-> /ApplicationA
-> /project
-> /build.sbt
-> /CoreLi
You can do a source dependency on your project like that :
lazy val core = RootProject(file("../CoreLibrary"))
val main = Project(id = "application", base = file(".")).dependsOn(core)
I have a working example with a multimodule play build : https://github.com/ahoy-jon/play2MultiModule/blob/master/playapp/project/Build.scala
But I think the proper way (it depends of your context) of doing it is to create a
-> /project/
-> Build.scala
-> /ApplicationA
-> /project
-> /build.sbt
-> /CoreLibrary
-> /project
-> /build.sbt
referencing the two projects and the dependencies between them.
With sbt 0.12.1 it seems possible to get a simple reference to a project :
I used ProjectRef instead of RootProject
http://www.scala-sbt.org/0.12.1/api/sbt/ProjectRef.html
ProjectRef(file("../util-library"), "util-library")
sbt-eclipse also works.
Since sbt 0.13, you may create multi-project definitions directly in .sbt without needing a Build.scala file.
So adding the following to ApplicationA/project/build.sbt would be sufficient.
lazy val core = RootProject(file("../CoreLibrary"))
val main = Project(id = "application", base = file(".")).dependsOn(core)