First understand this example -
build.sbt:
name := "hello"
version := "1.0"
Above 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"
)
}
Now I thinks it makes clear that when .sbt's are being compiled, they are before that sort of merged with the .scala files inside project directory.
Credit: http://stackoverflow.com/questions/18000103/what-is-the-difference-between-build-sbt-and-build-scala