Scala 在多项目Build.sbt中分解库依赖项
我正试图编写一个简明的multi-project Build.sbt,所以我试图将所有库依赖项放在根项目中,然后让其他人依赖它。My Build.sbt如下所示:Scala 在多项目Build.sbt中分解库依赖项,scala,dependencies,sbt,multi-project,Scala,Dependencies,Sbt,Multi Project,我正试图编写一个简明的multi-project Build.sbt,所以我试图将所有库依赖项放在根项目中,然后让其他人依赖它。My Build.sbt如下所示: object KataBuild extends Build { lazy val fizzBuzz = Project( id = "fizzBuzz", base = file("fizzBuzz"), settings = Project
object KataBuild extends Build {
lazy val fizzBuzz = Project(
id = "fizzBuzz",
base = file("fizzBuzz"),
settings = Project.defaultSettings ++ Seq(
name := "fizzBuzz",
version := "1.0",
scalaVersion := "2.10.3"
)
)
lazy val kata = Project(
id = "scala-kata",
base = file("."),
settings = Project.defaultSettings ++ Seq(
name := "scala-kata",
version := "1.0",
scalaVersion := "2.10.3",
libraryDependencies ++= Seq(
"org.scalatest" %% "scalatest" % "2.1.0" % "test"
)
)
) aggregate(fizzBuzz)
fizzBuzz dependsOn(kata)
}
但运行主项目(scala kata)的测试无法为fizzBuzz构建测试。我遗漏了什么?你的问题类似于。简而言之,
fizzBuzz.dependsOn(kata)
意味着它的编译配置取决于kata的编译配置,但您希望链接测试配置
sbt文档的部分向您展示了如何创建test->test
依赖关系
但是,如果您不打算使用
kata
的测试源,而只是想在fizzBuzz
中包含Scala测试,那么只需将它显式地添加到fizzBuzz
的库依赖项中即可。可以定义辅助值
lazy val scalaTest = "org.scalatest" %% "scalatest" % "2.1.0" % "test"
然后,您可以将其添加为子项目的库依赖项(
libraryDependencies+=scalaTest
)。是的,在子项目中我不需要kata的测试源。我只想共享库依赖项(仅在kata项目中声明,子项目依赖于它)。因此,据我所知,这是不可能的,我必须将它显式地添加到所有子项目中,或者在kata/src/test中声明子项目的所有测试。我说得对吗?