Antes de que tuviera algo como esto (simplificado), utilizando SBT 0.11.3:Mezcla build.sbt con proyecto/Build.scala y agregados
// 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
)
}
Pero quiero mantener la mayor cantidad de información posible en el archivo simple build.sbt
. Así que ahora tengo
// build.sbt
version := "0.2"
scalaVersion := "2.9.2"
Y
// 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")
)
}
Pero eso no parece mezclar en mi configuración de build.sbt
en los sub proyectos:
> 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
cómo remediar esto? También intenté agregar settings
explícito al subproyecto, p.
settings = Defaults.defaultSettings
settings = Project.defaultSettings
settings = MyBuild.settings
settings = main.settings
(seguro de que esto debería hacer ?!)
... pero ninguno funcionó.
El [sbt doc fur multi projects] (https://github.com/harrah/xsbt/wiki/Getting-Started-Multi-Project) casi tiene mi caso. Afirma que el 'build.sbt' principal se fusionará con los archivos' .sbt' de los subproyectos. Incluso da un ejemplo de anulación de la versión, sin embargo, no demuestra la herencia, lo que debería ocurrir de acuerdo con mi lectura de ese documento. –