#scala #sbt
Вопрос:
Итак, у меня есть следующая структура проекта:
val projectA = project. // assume rest of config val projectB = project // assume rest of config .dependsOn(A)
Теперь по причинам при запуске, например, тестов ProjectB вместо компиляции классов ProjectA в собственном dir ( projectA/target/scala...
) добавьте их в цель ProjectB, чтобы иметь projectB/target/projectA/target/...
.
Я попробовал выполнить следующую настройку build.sbt
и sbt 'projectB' ...
безуспешно позвонил:
val projectB = project // assume rest of config .dependsOn(A) .settings(projectA / target := file("new target dir"))
но если та же конфигурация задана непосредственно в sbt
команде, например:
sbt 'project B' 'set projectA / target := file("new target dir")' ...
Это работает нормально, и я вижу, как внутри создается новый каталог projectB/target/projectA
со всем сгенерированным.
Не могу понять, чего мне здесь не хватает для настройки, чтобы build.sbt
не работать, ценю любую помощь.
Комментарии:
1. Могу я спросить, почему вас волнует, где создаются файлы?
2. Конечно, я знаю, что это не обычно из-за стандартов, но в реальном сценарии между ними больше проектов и зависимостей. Дело в том, что я использую sbt-покрытие при запуске тестов, и они выполняются параллельно, опция покрытия делает проект и его зависимости перекомпилированными и параллельными конфликтами, потому что один делает недействительными классы другого. Поэтому моя идея состояла в том, чтобы только на этапе тестирования выполнить вышеуказанное
3. Похоже, даже если такое решение и существует, это плохая практика. Почему бы просто не убежать
sbt compile
, а потомsbt test
?