用`test`范围定义的父项目的依赖关系在派生项目中不可见

时间:2018-12-04 09:53:01

标签: scala dependencies sbt

比方说,有一个项目A具有以下依赖性。

"org.testng" % "testng" % "6.14.3" % "test",
"org.scalatest" %% "scalatest" % "3.0.3" % "test",
"org.scalacheck" %% "scalacheck" % "1.14.0" % "test",
"org.hamcrest" % "hamcrest-core" % "1.3" % "test"

还有通过sbt.Project.dependsOn(projectA)依赖于项目A的项目B。

由于缺少org.scalatest.*,因此未编译项目B中的测试。

这是设计使然吗?我该如何克服?

1 个答案:

答案 0 :(得分:3)

默认情况下,.dependsOn仅使用compile范围。为了使其适用于测试,我不得不更改为

.dependsOn(projectA % "compile->compile;test->test")

有关它的更多信息here