Home

SBT

sbt stands for Scala Build Tool. It is a build tool for Scala and Java projects that manages compilation, dependency resolution, testing, packaging, and publishing.

At its core sbt uses a DSL written in Scala to declare projects, settings, and tasks. The

A typical project includes a project/build.properties to lock the sbt version, a project/plugins.sbt to enable sbt

Usage is via the sbt interactive shell or non-interactive commands. Common commands include compile, test, run,

sbt has been the de facto build tool in the Scala ecosystem for many years, supported by

build
is
defined
in
build.sbt
and,
for
more
complex
setups,
in
the
project/
directory
with
additional
Scala
code.
sbt
supports
multi-project
builds,
incremental
compilation
via
Zinc,
and
flexible
task
orchestration.
Dependency
resolution
typically
uses
Ivy,
with
optional
integration
for
faster
resolution
via
Coursier.
plugins,
and
a
build.sbt
that
specifies
libraryDependencies,
resolvers,
and
settings
such
as
scalaVersion
and
organization.
package,
publishLocal,
and
publish.
sbt
can
work
with
Java
tooling
and
supports
cross-building
for
multiple
Scala
versions;
plugins
extend
functionality
for
packaging,
deployment,
and
continuous
integration
workflows.
a
robust
plugin
ecosystem.
Plugins
such
as
sbt-assembly
for
fat
jars,
sbt-native-packager
for
OS-specific
packages,
and
sbt-release
for
release
management
are
commonly
used.
The
tool
integrates
with
popular
CI
systems
and
Scala
tooling,
and
continues
to
evolve
with
improvements
in
performance,
dependency
resolution,
and
developer
experience.