sbt Reference Manual

sbt Reference Manual 

sbt is a build tool for Scala, Java, and more. It requires Java 1.8 or later.


See Installing sbt for the setup instructions.

Getting Started 

To get started, please read the Getting Started Guide. You will save yourself a lot of time if you have the right understanding of the big picture up-front. All documentation may be found via the table of contents included at the end of every page.

Use Stack Overflow for questions. Use the sbt-dev mailing list for discussing sbt development. Use @scala_sbt for questions and discussions.

Features of sbt 

  • Little or no configuration required for simple projects
  • Scala-based build definition that can use the full flexibility of Scala code
  • Accurate incremental recompilation using information extracted from the compiler
  • Continuous compilation and testing with triggered execution
  • Packages and publishes jars
  • Generates documentation with scaladoc
  • Supports mixed Scala/Java projects
  • Supports testing with ScalaCheck, specs, and ScalaTest. JUnit is supported by a plugin.
  • Starts the Scala REPL with project classes and dependencies on the classpath
  • Modularization supported with sub-projects
  • External project support (list a git repository as a dependency!)
  • Parallel task execution, including parallel test execution
  • Library management support: inline declarations, external Ivy or Maven configuration files, or manual management


This documentation can be forked on GitHub. Feel free to make corrections and add documentation.

Documentation for 0.13.x has been archived here. This documentation applies to sbt 1.4.5.

See also the API Documentation, and the index of names and types.