Documentation Index
Fetch the complete documentation index at: https://mintlify.com/sbt/sbt/llms.txt
Use this file to discover all available pages before exploring further.
Welcome to sbt
sbt is a modern build tool for Scala, Java, and more. It provides a powerful, interactive environment for building, testing, and deploying your projects with features designed for developer productivity.What is sbt?
sbt (Simple Build Tool) is an open-source build tool that emphasizes:- Developer productivity through an interactive shell and fast incremental compilation
- Flexible configuration using Scala-based build definitions
- Powerful dependency management with support for Maven and Ivy repositories
- Extensibility through a rich plugin ecosystem
sbt 2.x is the latest major version, bringing improved performance, better error messages, and enhanced features while maintaining compatibility with existing builds.
Key Features
Incremental Compilation
Zinc, sbt’s incremental compiler, only recompiles the sources that changed and their dependencies, dramatically speeding up your development cycle.
Interactive Shell
The sbt shell keeps your project loaded and ready, allowing you to run tasks instantly without waiting for JVM startup on every command.
Multi-Project Builds
Easily manage complex projects with multiple submodules, shared settings, and cross-project dependencies in a single build definition.
Plugin Ecosystem
Extend sbt with hundreds of community plugins for everything from code coverage to deployment, or write your own custom plugins.
Parallel Execution
sbt automatically parallelizes independent tasks across your multi-project build, maximizing CPU utilization.
Continuous Testing
Watch mode automatically re-runs tasks when source files change, perfect for test-driven development workflows.
Build Definition as Code
sbt uses Scala for its build definitions, giving you:- Type safety to catch errors at build definition time
- Powerful abstractions for complex build logic
- Reusable components through shared settings and plugins
- IDE support with autocompletion and refactoring
build.sbt
Designed for the JVM Ecosystem
While sbt excels at building Scala projects, it’s equally capable with:- Java projects with full support for javac
- Scala.js for compiling Scala to JavaScript
- Scala Native for native executables
- Mixed Scala/Java codebases
Battle-Tested and Trusted
sbt powers builds for:- The Scala compiler itself
- Major open-source frameworks like Akka, Play Framework, and Spark
- Thousands of companies worldwide
- Projects ranging from small libraries to large microservice architectures
Getting Started
Ready to start building with sbt? Here’s your roadmap:Install sbt
Get sbt installed on macOS, Linux, or Windows in just a few minutes.
Quick Start
Create your first “Hello World” project and learn the basics of the sbt shell.
Build Definition
Learn how to configure your project with build.sbt and manage dependencies.
Join the Community
sbt has an active community ready to help:- Discord: Join the #sbt channel on Scala Discord
- Stack Overflow: Ask questions tagged with sbt
- GitHub: Report issues or contribute at sbt/sbt
What’s New in sbt 2.x
sbt 2.x brings significant improvements:- Better Performance: Faster startup times and improved incremental compilation
- Enhanced Error Messages: Clearer diagnostics to help you fix problems quickly
- Modern JVM Support: Optimized for Java 17+ with native client support (sbtn)
- Improved Dependency Resolution: More reliable and faster with Coursier
- Scala 3 First: Full support for Scala 3 features and tooling