sbt
The interactive build tool. Define your tasks in Scala. Run them in parallel from sbt's interactive shell.
- Snippet from Wikipedia: Sbt (software)
sbt is an open-source build tool for Scala and Java projects, similar to Apache's Maven and Gradle.
Its main features are:
- Native support for compiling Scala code and integrating with many Scala test frameworks
- Continuous compilation, testing, and deployment
- Incremental testing and compilation, meaning only changed sources are re-compiled, only affected tests are re-run
- Build descriptions written in Scala using a DSL
- Dependency management using Coursier, which supports Maven-format repositories
- Integration with the Scala REPL for rapid iteration and debugging
- Support for mixed Scala/Java projects
sbt is the de facto build tool in the Scala community, used, for example, by Play Framework.
Lightbend Inc., which managed sbt development in past years, has called sbt "arguably the best tool for building Scala projects", saying that its two most prominent features are incremental compilation and an interactive shell. In continuous compilation mode, the Scala compiler is instantiated only once, which eliminates subsequent startup costs; source file changes are tracked so that only affected dependencies are recompiled. The interactive console allows modifying build settings on the fly and entering the Scala REPL along with all class files of the project. The popularity of the incremental compilation prompted Lightbend to extract this feature in the form of an independent component called Zinc.