update - ¿Cuál es la diferencia entre build.sbt y build.scala?
scala sbt ubuntu (3)
Empecé a aprender Scala y casi en cada tutorial veo un archivo build.sbt que describe la configuración del proyecto. Pero ahora he instalado giter8 y giter8 creado un proyecto a partir de la plantilla. Y el proyecto generado a partir de la plantilla se olvidó del archivo build.sbt , pero tiene build.scala (que parece usado para los mismos fines, pero es más flexible).
Entonces, ¿cuál es la diferencia entre build.sbt y build.scala ?
¿Cuál es más preferido y por qué?
Actualización julio de 2016 (3 años después)
Build.scala está oficialmente obsoleto en sbt 0.13.12
La característica
Buildestá en desuso en favor del formato.sbt
PR 2530 implementa esa depreciación.
" Apéndice: definición de compilación de .scala " ha sido actualizado.
Cuando se están compilando .sbt s, están antes de ese tipo de fusión con los archivos .scala dentro del directorio del project . No se pueden usar en tareas recursivas, es decir, no se puede personalizar sbt desde sbt , por ejemplo. Para obtener información más detallada, considere leer la sección relacionada con la documentación de sbt: http://www.scala-sbt.org/release/docs/Getting-Started/Basic-Def.html#sbt-vs-scala-definition
Para dar un breve ejemplo, este build.sbt :
name := "hello"
version := "1.0"
es una notación abreviada más o menos equivalente a este project/Build.scala :
import sbt._
import Keys._
object Build extends Build {
lazy val root = Project(id = "root", base = file(".")).settings(
name := "hello",
version := "1.0"
)
}
El archivo .sbt también puede incluir .sbt , lazy val y def s (pero no los object ni las class ).
Consulte el documento de SBT llamado "definición de compilación .scala" , particularmente la sección "Relacionar build.sbt to Build.scala".
Considere una definición de compilación .scala si está haciendo algo complicado en el que desea la total expresividad de Scala.