Любые настройки, определенные без привязки к настройкам конкретного проекта, например .settings()
, присоединяются к корневому проекту.
Таким образом, код, подобный этому
organization := "foo"
, такой же, как
lazy val root = (project in file(".")).settings(organization := "foo")
Теперь, если вы определили новый подпроект, такой как common
, и добавьте organization
lazy val common = (project in file("common")).settings(organization := "bar")
Это и только у него будет значение organization
, установленное на bar
.
Это будет иметь место в примере, когда для корневого проекта также определен собственный organization
.
lazy val root = (project in file(".")).settings(organization := "foo")
lazy val common = (project in file("common")).settings(organization := "bar")
Это легко проверить с помощью команд sbt "show organization"
и sbt "show common/organization"
.Он напечатает foo
и bar
соответственно.
Наконец, если вы хотите, чтобы одинаковое значение было определено для всех подпроектов, добавьте настройки в корневой проект для области действия ThisBuild
, как в этом примере:
organization in ThisBuild := "foo"
lazy val common = (project in file("common")).settings(???)
Или сохранитенастройки в Seq
и применить его ко всем подпроектам и root.Это будет иметь тот же эффект, что и в области действия ThisBuild
, но это будет более явным:
val commonSettings = Seq(organization := "foo")
lazy val root = (project in file(".")).settings(commonSettings)
lazy val common = (project in file("common")).settings(commonSettings)