Mam multi-projekt SBT, w którym niektóre projekty mają wzajemne zależności. Lubię to:
lazy val coreProject: Project = Project(
id = "core-project",
base = file("./core-project"),
// other stuff
))
lazy val extensions: Project = Project(
id = "extensions",
base = file("./extensions"),
dependencies = Seq(coreProject)
)
Teraz mam kod testowy w projekcie „core” w folderze testowym. Są też takie rzeczy jak makiety i narzędzia testowe. Teraz chciałbym użyć tych narzędzi testowych w testach rozszerzeń. W przypadku kodu produkcyjnego to działa, ponieważ zadeklarowałem zależność. Jednak wydaje się, że zależność nie zachowuje się w przypadku testów. Po uruchomieniu testów pojawia się błąd kompilacji dla brakujących klas. Te klasy pochodzą z kodu testowego w głównym projekcie.
Jak mogę powiedzieć komuś, że zależność powinna również zawierać kod testu dla zakresu testowego? Aby móc ponownie wykorzystać moje makiety w kodzie testowym projektu „exension”?
lazy val foo = project.settings(...).dependencies(Seq(bar % "compile->compile;test->test"))
nie działa. @RyanGross, dobrze?Możesz to również zrobić
.dependsOn(coreProject % "compile->compile;test->test")
po wstępnej deklaracji projektu.lazy val coreProject = Project("core-project") lazy val extensions = Project("extensions").dependsOn(coreProject % "compile->compile;test->test")
źródło