У меня есть многопроект SBT, в котором некоторые проекты зависят друг от друга. Как это:
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)
)
Теперь у меня есть тестовый код в «основном» проекте в папке test. Также есть такие вещи, как mocks и test-утилиты. Теперь я хотел бы использовать эти тестовые утилиты при тестировании расширений. Для производственного кода это работает, поскольку я объявил зависимость. Однако похоже, что для тестов зависимость не работает. Когда я запускаю тесты, я получаю ошибку компиляции из-за отсутствия классов. Эти классы взяты из тестового кода в основном проекте.
Как я могу сказать sbt, что зависимость также должна включать тестовый код для тестовой области? Чтобы я мог повторно использовать свои макеты в тестовом коде проекта расширения?
lazy val foo = project.settings(...).dependencies(Seq(bar % "compile->compile;test->test"))
не работает. @RyanGross, а ты?Вы также можете сделать это с помощью a
.dependsOn(coreProject % "compile->compile;test->test")
после первоначального объявления проекта.lazy val coreProject = Project("core-project") lazy val extensions = Project("extensions").dependsOn(coreProject % "compile->compile;test->test")
источник