To give a brief example, this build.sbt
:
name := "hello"
version := "1.0"
is a shorthand notation roughly equivalent to this 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"
)
}
The .sbt
file can also include val
s, lazy val
s, and def
s (but not object
s and class
es).
See the SBT document called “.scala build definition”, particularly the section “Relating build.sbt to Build.scala”.
Consider a .scala
build definition if you’re doing something complicated where you want the full expressiveness of Scala.