¿Cuál es la diferencia entre construir.sbt y build.scala?
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 he creado un proyecto a partir de la plantilla. Y proyecto generado a partir de la plantilla perdido build.sbt
archivo, pero tiene build.scala
(que parece utilizado para los mismos fines, pero es más flexible).
Entonces, ¿cuál es la diferencia entre build.sbt
y build.scala
?
¿Cuál es el preferido y por qué?
3 answers
Para dar un breve ejemplo, este build.sbt
:
name := "hello"
version := "1.0"
Es una notación abreviada aproximadamente equivalente a esto 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 .sbt
archivo también puede incluir {[5] s}, {[6] s}, y def
s (pero no {[8] s}y class
es).
Véase el documento de SBT llamado ".definición de construcción de scala " , particularmente la sección "Relativa a la construcción.sbt para Construir.scala".
Considere una definición de compilación .scala
si está haciendo algo complicado donde desea la expresividad completa de Scala.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-02-05 19:56:09
Actualización de julio de 2016 (3 años después)
Build.scala
está oficialmente en desuso en sbt 0.13.12
El rasgo
Build
está en desuso en favor del formato.sbt
PR 2530 implementa esa obsolescencia.
"Appendix: .scala
build definition " ha sido actualizado.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-07-25 11:15:14
Cuando se compilan .sbt
, están antes de que se fusionen con los archivos .scala
dentro del directorio 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 es documentación sbt: http://www.scala-sbt.org/release/docs/Getting-Started/Basic-Def.html#sbt-vs-scala-definition
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-08-01 17:03:45