Verwenden Sie allgemeine Einstellungen in SBT `RootProject`

Die Antwort beihttps: //stackoverflow.com/a/21605652/173772 zeigt, wie eine Einstellung für ein mit @ definiertes Unterprojekt überschrieben wiRootProject aus dem Hauptprojekt. Ich habe mich gefragt, ob es eine gute Möglichkeit gibt, dies für mehrere Einstellungen und möglicherweise auch für mehrere Teilprojekte zu tun, damit Sie nicht jede Kombination einzeln auflisten müssen. Dies würde dazu dienen, die Verbreitung zu verhindern und die Wahrscheinlichkeit zu verringern, dass eine Kombination vergessen wird und versehentlich eine Nichtübereinstimmung der Einstellungen auftritt.

Wenn nicht mitRootProject, dasSBT docs zeigen, wie dies mit einer allgemeinen Folge von Einstellungen gemacht wird:

lazy val commonSettings = Seq(
  organization := "com.example",
  version := "0.1.0",
  scalaVersion := "2.11.8"
)

lazy val core = (project in file("core")).
  settings(commonSettings: _*).
  settings(
    // other settings
  )

lazy val util = (project in file("util")).
  settings(commonSettings: _*).
  settings(
    // other settings
  )

Aber einRootProject hat keine Methode, um seine Einstellungen festzulegen. Ich habe nach der oben genannten Antwort Folgendes versucht:

lazy val util = RootProject(file("../util"))
commonSettings.map(_.key).foreach(key => key in util := key.value)

Aber dies scheint nicht der richtige Ansatz zu sein.

Ich habe mit @ gesucGlobal oderThisBuild scope, aber jedes Unterprojekt legt die Einstellungen in einem eigenen @ febuild.sbt -Datei, die Vorrang vor diesen weiter gefassten Bereichen hat, wenn ich sie richtig verstehe.

Gibt es eine gute Möglichkeit, dies zu tun, oder sollte ich einfach jede Einstellung für jedes Teilprojekt manuell festlegen? Soll ich verschiedene Bereiche verwenden, z. Die Teilprojekte definieren ihre Einstellungen inGlobal und das Hauptprojekt inThisBuild?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage