В многопроектной сборке SBT, когда вы запускаете задачу в проекте агрегатора, и она запускает задачи в каждом агрегированном подпроекте, все журналы из каждого подпроекта выводятся вместе в один большой поток.
Это затрудняет отладку проблем сборки в многопроектной сборке, поскольку все журналы смешиваются. Есть ли способ вывести идентификатор проекта в каждой строке журнала, чтобы вы могли быстро определить, из какого подпроекта был получен журнал?
Вот пример проекта:
name := "my-multiproject-build"
lazy val ProjectOne = project
lazy val ProjectTwo = project
lazy val root = project.in( file(".") ).aggregate(ProjectOne, ProjectTwo)
(что происходит по умолчанию)
sbt package
[info] Packaging ProjectOne.jar ...
[info] Done packaging.
[info] Packaging ProjectTwo.jar ...
[info] Done packaging.
(что я хочу)
sbt package
[info] [ProjectOne] Packaging ProjectOne.jar ...
[info] [ProjectOne] Done packaging.
[info] [ProjectTwo] Packaging ProjectTwo.jar ...
[info] [ProjectTwo] Done packaging.
Я попытался изучить пользовательские регистраторы SBT, но, к сожалению, документация немного скудна, а я ни в коем случае не эксперт по SBT.