Simple things easy
ThisBuild / scalaVersion := "3.3.1"
You just need one line of
to get started with Scala. Learn more on sbt by Example
Choose from community-maintained Giter8 templates
to jump start your project:
$ sbt new scala/scala-seed.g8
$ sbt new playframework/play-scala-seed.g8
$ sbt new akka/akka-http-quickstart-scala.g8
$ sbt new http4s/http4s.g8
$ sbt new holdenk/sparkProjectTemplate.g8
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.
With Zinc incremental compiler and file watch (
~), edit-compile-test loop is fast and incremental.
Adding support for new tasks and platforms (like Scala.js) is as easy as writing
. 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