Я пытаюсь придумать структуру для большого многомодульного проекта sbt, который удовлетворяет следующим требованиям:
При построении корневого проекта зависимости в первую очередь разрешаются из модулей, доступных в корневом каталоге (т. Е. Если модуль A зависит от модуля B версии 2, которая является версией B, доступной в корневом каталоге, удовлетворяют требованиям зависимость от того, что производит сборка для B)
Когда модули создаются индивидуально, зависимости разрешаются из репозиториев (локальных, кешированных, удаленных).
Мне известно о двух средствах определения зависимостей для проекта sbt: dependsOn () и ключ настройки libraryDependencies.
До сих пор в моей наивной структуре, где вся информация о сборке для модулей (A, B) отслеживалась в корне, я просто передавал .depends на ссылки проекта, и межмодульные зависимости были правильно разрешены в сборке R
Что я хотел бы сделать, так это переместить / отследить эту взаимосвязь в файле build.sbt самих модулей, которые затем размещаются в отдельных репозиториях (и иногда возвращаются к «агрегатному» тегу репозитория родительского проекта через git подмодуль)
У меня никогда не было проблем с этим с maven (я предполагаю, что из-за возможности явно ссылаться на родительский элемент в модуле pom и есть только один способ установить зависимость), но я пока не могу понять, как чтобы начать в SBT
Итак, мой вопрос: придется ли мне писать для этого собственный преобразователь? Есть ли что-нибудь очевидное, что мне здесь не хватает?
Спасибо.