Укажите другую версию sbt для подпроекта в мультипроекте?

У меня есть многопроект, содержащий несколько подпроектов.

Корневой проект project/build.properties содержит

sbt.version=0.13.0

Оказалось, что один из подпроектов работает только с версией 0.12.4 из-за проблемы с зависимостью.

Я поместил build.properties с этой версией в свой каталог, но не изменил версию sbt для этого проекта.

Как мне это сделать правильно? Возможно ли вообще?

Ответ 1

В настоящее время sbt обеспечивает глубокие зависимости на уровне задач между проектами в одной и той же сборке. Итак, в то время как проекты имеют свой собственный каталог, они используют один загрузчик классов для своей сборки, который имеет все определения.

Это помещает ограничение, которое вы не можете использовать для сборки, несовместимых версий.

Удаление этого ограничения возможно в будущем, но сейчас я бы сделал одно из следующих действий:

  • Просто используйте sbt 0.12.4 для своей сборки.
  • Перенести все коммуникации между проектами через Ivy. У вас есть 2 сборки с оберткой script, которая запускает их в правильном порядке.