2013-08-01 2 views
99

Ich fing an, Scala zu lernen und fast in jedem Tutorial sehe ich eine build.sbt Datei, die Projekteinstellungen beschreibt. Aber jetzt habe ich giter8 installiert und ein Projekt aus Vorlage erstellt. Und generierte Projekt von Vorlage verpasst build.sbt Datei, aber es hat build.scala (die für die gleichen Zwecke verwendet scheint, aber es ist flexibler).Was ist der Unterschied zwischen build.sbt und build.scala?

Was ist der Unterschied zwischen build.sbt und build.scala?
Welches ist mehr bevorzugt und warum?

Antwort

90

Um ein kurzes Beispiel zu geben, diese build.sbt:

name := "hello" 

version := "1.0" 

ist eine Kurzschreibweise entspricht in etwa dieser 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"  
) 
} 

Die Datei .sbt kann auch val s, lazy val s und def s (aber nicht object s und) enthaltenes).

Siehe the SBT document called ".scala build definition", insbesondere der Abschnitt "Build.sbt zu Build.scala beziehen".

Betrachten Sie eine .scala Build-Definition, wenn Sie etwas kompliziertes tun, wo Sie die volle Ausdruckskraft von Scala wollen.

+5

Auf "build.sbt wird selten genug" ist es in 0.12 und früher wahr, dass wenn Sie Tasks oder Multi-Modul-Builds definieren möchten, benötigen Sie .scala-Dateien. Dies sollte in 0.13 behandelt werden, wo Sie jetzt Vals und mehrere Projekte definieren können. Sie können natürlich immer noch mit .scala beginnen. –

+1

SBT Dokumentation zu diesem Thema - http://www.scala-sbt.org/release/tutorial/Full-Def.html – neowulf33

Verwandte Themen