Quelle est la différence entre build.sbt et build.scala?



scala sbt download windows (3)

Mise à jour juillet 2016 (3 ans plus tard)

Build.scala est officiellement obsolète en sbt 0.13.12

Le trait Build est déprécié en faveur du format .sbt

PR 2530 implémente cette dépréciation.
" Annexe: définition de la version .scala " a été mise à jour.

J'ai commencé à apprendre Scala et presque dans chaque tutoriel, je vois un fichier build.sbt qui décrit les paramètres du projet. Mais maintenant j'ai installé giter8 et créé un projet à partir du template. Et généré le projet à partir du modèle manqué fichier build.sbt , mais il a build.scala (qui semble utilisé à la même fin, mais il est plus flexible).

Alors, quelle est la différence entre build.sbt et build.scala ?
Lequel est le plus préféré et pourquoi?


Lorsque les .sbt sont compilés, ils sont avant ce type de fichiers fusionnés avec les fichiers .scala dans le répertoire du project . Ils ne peuvent pas être utilisés dans des tâches récursives, c'est-à-dire que vous ne pouvez pas personnaliser sbt partir de sbt , par exemple. Pour plus d'informations, consultez la section relative à la documentation sur la sbt: http://www.scala-sbt.org/release/docs/Getting-Started/Basic-Def.html#sbt-vs-scala-definition


Pour donner un bref exemple, cette build.sbt :

name := "hello"

version := "1.0"

est une notation raccourcie à peu près équivalente à ce 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"      
  )
}

Le fichier .sbt peut également inclure val s, lazy val s .sbt , et def s (mais pas object s et class es).

Voir le document SBT intitulé ".scala build definition" , en particulier la section "Relating build.sbt to Build.scala".

Considérez une définition de construction .scala si vous faites quelque chose de compliqué où vous voulez l'expressivité complète de Scala.





sbt