Bevor ich so etwas wie diese (vereinfacht) hatte, mit sbt 0.11.3:Mischen build.sbt mit Projekt/Build.scala und aggregiert
// project/Build.scala
import sbt._
import Keys._
object MyBuild extends Build {
lazy val standardSettings = Defaults.defaultSettings ++ Seq(
version := "0.2",
scalaVersion := "2.9.2"
)
lazy val main = Project(
id = "main",
base = file("."),
settings = standardSettings,
aggregate = Seq(sub)
)
lazy val sub = Project(
id = "main-sub",
base = file("sub"),
settings = standardSettings
)
}
Aber ich will in der so viele Informationen wie möglich halten Ebene build.sbt
Datei. So, jetzt habe ich
// build.sbt
version := "0.2"
scalaVersion := "2.9.2"
Und
// project/Build.scala
import sbt._
import Keys._
object MyBuild extends Build {
lazy val main = Project(
id = "main",
base = file("."),
aggregate = Seq(sub)
)
lazy val sub = Project(
id = "main-sub",
base = file("sub")
)
}
Aber das scheint nicht von build.sbt
in die Teilprojekte in meinen Einstellungen zu mischen:
> show version
[info] main-sub/*:version
[info] 0.1-SNAPSHOT
[info] main/*:version
[info] 0.2
> show scala-version
[info] main-sub/*:scala-version
[info] 2.9.1
[info] main/*:scala-version
[info] 2.9.2
Wie hier Abhilfe zu schaffen? Ich habe auch versucht, das Teilprojekt settings
explizit hinzuzufügen, z.
settings = Defaults.defaultSettings
settings = Project.defaultSettings
settings = MyBuild.settings
settings = main.settings
(sicher tun ?! dies sollte) ... aber keiner arbeitete.
Das [sbt Dokument für mehrere Projekte] (https://github.com/harrah/xsbt/wiki/Getting-Started-Multi-Project) hat fast meinen Fall. Es behauptet, dass die Hauptdatei 'build.sbt' mit' .sbt' Dateien aus Unterprojekten zusammengeführt wird. Es gibt sogar ein Beispiel für das Überschreiben der Version, aber es zeigt keine Vererbung an, was nach meinem Lesen dieses Dokuments geschehen sollte. –