Компиляция подпроектов в sbt
У меня есть некоторые подпроекты, которые мне нужно скомпилировать с помощью sbt. Структура выглядит так:
main_project
- sub_project1
- sub_project2
- sub_project3
Конечно, у них есть правильная иерархия каталогов (src-main- scala....). Как я могу скомпилировать их все и в каждом из них?
Ответы
Ответ 1
Смотрите интерактивные проекты:
В интерактивном приглашении sbt введите projects
, чтобы перечислить ваши проекты и project <projectname>
, чтобы выбрать текущий проект. Когда вы запускаете задачу типа compile
, она запускается в текущем проекте. Поэтому вам необязательно компилировать корневой проект, вы можете скомпилировать только подпроект.
Вы можете использовать aggregate для их компиляции.
Ответ 2
Поскольку выбранный ответ, связанная документация изменилась, ответ уже не так ясен.
В build.sbt
OP main_project
, чтобы собрать их вместе, они должны будут определить aggregate
, поскольку новая (er) документация ссылается на:
lazy val root = (project in file("."))
.aggregate(util, core)
lazy val util = (project in file("util"))
lazy val core = (project in file("core"))
И затем запуск sbt compile
в корневом каталоге проекта скомпилирует их все.
Однако, если вы хотите скомпилировать по одному, вы можете перейти к строке/терминалу cmd к корневому проекту (здесь main_project
) и затем выполнить следующую команду:
user:main_project$: sbt <project name> / compile
использовать пример постера:
user:main_project$: sbt sub_project1 / compile
(если вы находитесь в терминале SBT, вы можете опустить sbt
)