在 SBT 中声明托管库依赖项很容易,例如
libraryDependencies ++= Seq(
"org.specs2" %% "specs2" % "1.12.2" % "test" ,
"junit" % "junit" % "4.7" % "test"
)
虽然在 SBT 中声明项目依赖项并不容易,但我也可以这样做:
object RichMath extends Build {
lazy val myApp = Project("RichMath", file(".")) dependsOn(richUtil)
lazy val richUtil = RootProject(file("../RichUtil"))
}
但在实践中,我通常希望在项目模式和库模式之间切换,在这种模式下更改在上游项目中立即可见,而在库模式中,随着代码的成熟,我必须发布更改才能在依赖项目中看到它们。
在代码库生命的早期,或者每当我想在模块之间进行频繁的更改时,我不希望为了查看上游更改而重新发布的麻烦。但是在稳定/成熟的代码中,我想准确地指定我所依赖的版本。
似乎 SBT 将这两个依赖项视为完全不同的。有没有比重写我的构建定义更直接的方式来在项目依赖和库依赖之间切换?