The interactive build tool

Define your tasks in Scala. Run them in parallel from sbt's interactive shell.

Download Documentation

Why sbt?

For Scala and Java

sbt is built for Scala and Java projects. It is the build tool of choice for 93.6% of the Scala developers (2019). One of the examples of Scala-specific feature is the ability to cross build your project against multiple Scala versions.

Typesafe and parallel

build.sbt is a Scala-based DSL to express parallel processing task graph. Typos in build.sbt will be caught as a compilation error.

Speedy iteration

With Zinc incremental compiler and file watch (~), edit-compile-test loop is fast and incremental.

Extensible

Adding support for new tasks and plaforms (like Scala.js) is as easy as writing build.sbt. Join 100+ community-maintained plugins to share and reuse sbt tasks.

Beyond the build tool

Previously 21% of the developer's time was spent in redeploying WebLogic application, which was unacceptable. We had to find a solution: some way of productivity to go high. This is one of the reasons why we have Play and Akka. We were really impressed with the hot reload. Now the developers are clearly more productive.
— Keyur Shah, Associate Fellow, Verizon
sbt is a core critical component of Tapad's tech stack. Its use beyond the build tool is largely responsible for the massive efficiency gains that the engineering organization has come to appreciate. sbt and its interactive shell comprise the interface to the standardized application testing, release, and deployment platform. Artifacts and applications are delivered, updated, and scaled across four global data centers.
— Jeffrey Olchovy, CTO, Tapad
You can use sbt-native-packager to build native formats like Docker, sbt-release has nice steps to take care of versioning, sbt-bintray can be used to release to Bintray. There's a pattern: You bring in a plugin. It has some settings. You read the documentations to learn about the setting. And it does its jobs.
— Gabriel Asman, Software Developer, Ovo Energy