The standard structure for a project built by SBT is:
projectName/
build.sbt
project/
<SBT sub-build information>
src/
main/
scala/
<Scala source files>
java/
<Java source files>
resources/
<Resource files>
test/
scala/
<Scala test files>
java/
<Java test files>
resources/
<Resource files>
Other directories may exist, but the build deals primarily with these. In the base directory build.sbt is placed, whose contents at a minimum are:
name := <name of build>: This is the name of the project.version := <version number>: This is the version of the project for downstream code to reference.scalaVersion := <version of Scala>: This is the version of Scala that the project's bytecode is built against.The project directory is where the meta-build (as opposed to the proper-build) files are placed. This directory can have it's own build.sbt file that executes in exactly the same manner, creating an environment for the proper-build SBT build to execute. This is recursive, so the project directory can have it's own project directory where a meta-meta-build occurs, and so on.
Upon building, SBT will create a target directory in which class files and other components are placed.