It's easy to declare managed library dependencies in SBT, like
libraryDependencies ++= Seq( "org.specs2" %% "specs2" % "1.12.2" % "test" , "junit" % "junit" % "4.7" % "test" )
And although it is not easy to declare project dependencies in SBT, I can do this too:
object RichMath extends Build { lazy val myApp = Project("RichMath", file(".")) dependsOn(richUtil) lazy val richUtil = RootProject(file("../RichUtil")) }
But in practice, I usually want to change the project mode when the changes are immediately visible in upstream projects and in library mode, where I have to post the changes to see them in dependent projects, as the code matures.
At the beginning of the code life cycle, or whenever I want to make frequent changes to modules, I donβt want the reissue to be just for viewing the changes upstream. But in stable / mature code, I want to specify exactly which version I am dependent on.
It seems that SBT views the two dependencies as completely different. Is there a more direct way to switch between dependencies between projects and libraries than rewriting the definition of my assembly?
source share