Проблема , по-видимому, заключается в том, что
Задача scalariformFormat
каждого подпроекта в различных областях имеет корень проекта в настройке sourceDirectories
.Это просто приводит к тому, что весь проект сканируется для источников scala и форматируется столько раз, сколько существует подпроектов.
и адресован через scalariformWithBaseDirectory
настройка
val scalariformWithBaseDirectory = settingKey[Boolean]("Whether or not to format sources in project root (default: false)")
Таким образом, установка withBaseDirectory=false
в .scalariform.conf
должна давать вывод
[info] Formatting 1 Scala source ProjectRef(uri("file:/Users/mario_galic/code/stackoverflow/sbt-scalariform-example/"), "main")(compile) ...
[info] Formatting 1 Scala source ProjectRef(uri("file:/Users/mario_galic/code/stackoverflow/sbt-scalariform-example/"), "module1")(compile) ...
[info] Formatting 1 Scala source ProjectRef(uri("file:/Users/mario_galic/code/stackoverflow/sbt-scalariform-example/"), "module2")(compile) ...
Обратите внимание, однако, что это не будет форматировать *.scala
источники в корне project/
каталог.Чтобы решить эту проблему, мы могли бы попытаться сохранить withBaseDirectory=false
в .conf
, но включить его для корневого проекта, например,
lazy val root = (project in file("."))
.aggregate(module1, module2, main)
.settings(scalariformWithBaseDirectory := true)
, который выдает
[info] Formatting 1 Scala source ProjectRef(uri("file:/Users/mario_galic/code/stackoverflow/sbt-scalariform-example/"), "module2")(compile) ...
[info] Formatting 1 Scala source ProjectRef(uri("file:/Users/mario_galic/code/stackoverflow/sbt-scalariform-example/"), "module1")(compile) ...
[info] Formatting 1 Scala source ProjectRef(uri("file:/Users/mario_galic/code/stackoverflow/sbt-scalariform-example/"), "main")(compile) ...
[info] Formatting 5 Scala sources ProjectRef(uri("file:/Users/mario_galic/code/stackoverflow/sbt-scalariform-example/"), "root")(compile) ...
, где мы все еще получаем дублирование, ноне так сильно, как изначально.