What is SBT

SBT at its core is task execution engine written and configured in Scala.

When you tell SBT "run this task" it will run not only the task, but all the required tasks that may be necessary to perform this task and reads all the settings that are required by the task itself. These task and setting dependencies are naturally modeled by a graph that SBT executes. We will call this graph build.

SBT has four core primitives that help you structure and configure your build. We will cover each of them in a separate block

  1. Settings - static values to configure aspects of your build. For instance the build version
  2. Tasks - dynamic generated values. For instance the compiled classes
  3. Scopes / Configurations - namespaces for settings or tasks
  4. Projects - ability to structure your build in different separated projects

In the next section we will setup a basic build to see all these concepts in action and learn how to apply them.

results matching ""

    No results matching ""