Я разрабатываю несколько модулей с зависимостями между ними и хотел бы работать с ними вместе в одном проекте IDEA. Я использую sbt-idea для генерации проектов IDEA из определений сборки sbt, что отлично работает для отдельных проектов. Однако в случае с несколькими модулями то, что я пробовал до сих пор, не совсем работает:
Используйте sbt-idea для генерации файла IDEA .iml для каждого модуля независимо; затем создайте основной проект IDEA с нуля и добавьте в него эти модули. В результате исходные тексты модулей можно редактировать в одном окне, но зависимости между ними не отслеживаются (поэтому при попытке перейти от какого-либо источника в проекте foo к чему-либо в bar я перехожу к импортированной библиотечной версии bar, а не к локальным источникам).
Используйте sbt многопроектные сборки (они же подпроекты), где Build.scala родительского проекта содержит что-то вроде:
lazy val foo = Project(id = "foo", base = file("foo"))
lazy val bar = Project(id = "bar", base = file("bar")) dependsOn(foo)
Это почти работает, поскольку sbt-idea генерирует главный проект IDEA с отслеживанием зависимостей между подпроектами. Однако есть две оговорки:
file("../foo")
не разрешается). Это не совсем то, что я хочу (что если модуль - например, пакет "utils" или "commons" - используется в двух разных мастер-проектах?), но я могу с этим жить. Подведем итоги: Я хотел бы собрать модули которые уже могут иметь подпроекты в один большой проект IDEA с отслеживаемыми зависимостями для удобства редактирования. Как я могу это сделать? Спасибо!