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


See the setup instructions.


  • 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

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.

Use Stack Overflow for questions. Use the sbt-dev mailing list for discussing sbt development. Use the #sbt irc channel for questions and discussions.

This documentation can be forked on GitHub. Feel free to make corrections and add documentation. The documentation source is located in the src/sphinx subdirectory of the GitHub project.

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

Source for this page