SBT: зависимость от других проектов SBT без публикации

У меня есть набор слабо связанных компонентов, некоторые из которых зависят от других. Для конкретности, давайте предположим, что у нас есть компоненты "общие", "а" и "b". & Quot; общий & Quot; не имеет никаких зависимостей, но все другие проекты используют "общие". Кроме того, "а" зависит от "b". Все компоненты написаны на Scala, и я хотел бы использовать sbt для их сборки.

Следующие свойства было бы неплохо иметь:

Multiple people work on the different projects, which is why we don't want to have a single repository, but rather one repository per project. Building a project should be easy, and all dependencies should be build automatically (if necessary). That is, if I modify "common" and then build "b", this should first build "common" and then go on to build "b". Be able to have all projects in an IDE, such that refactoring and similar IDE-tasks work correctly and all affected projects are changed correctly.

Насколько я вижу, есть две возможности иметь зависимости такого рода в sbt; Либо мы используем подпроекты, либо используем управляемую зависимость (то есть где-то, например, локально). Однако представляется, что оба эти варианта не обеспечивают ни (1), ни (2) выше. Особенно

Using sub-projects forces us to use a single repository, because all sub-project must be in sub-directories of the main project. Publishing the projects locally and using managed dependencies is cumbersome, as changing "common" and then building "b" only picks up the changes in "common" if that project was build and published first. I can see that managed dependencies are useful for many cases, but for our particular use-case they don't seem to work well. We frequently work on several projects and change them at the same time. For this reason, having to publish often seems overly complicated.

Неужели нет никакого способа сказать, что проект sbt зависит от другого проекта sbt в определенном (относительном) месте и от того, чтобы sbt выяснил, когда строить зависимость?

Ответы на вопрос(1)

Ваш ответ на вопрос