>
>
❦
Contents
Getting Started with sbt
Installing sbt
Tips and Notes
Installing sbt on Mac
Installing from a third-party package
Macports
Homebrew
Installing from a universal package
Installing manually
Installing sbt on Windows
Windows installer
Installing from a universal package
Installing manually
Installing sbt on Linux
Installing from a universal package
RPM and DEB
Gentoo
Installing manually
Installing sbt manually
Unix
Windows
Non-Cygwin
Cygwin with the standard Windows termnial
Cygwin with an Ansi terminal
Hello, World
Create a project directory with source code
Build definition
Setting the sbt version
Directory structure
Base directory
Source code
sbt build definition files
Build products
Configuring version control
Running
Interactive mode
Batch mode
Continuous build and test
Common commands
Tab completion
History Commands
.sbt build definition
.sbt vs .scala Build Definition
What is a Build Definition?
How build.sbt defines settings
Settings must be separated by blank lines
Keys
Types
Built-in Keys
Custom Keys
Task vs Setting keys
Defining tasks and settings
Types for tasks and settings
Keys in sbt interactive mode
Imports in build.sbt
Adding library dependencies
Scopes
The whole story about keys
Scope axes
Scoping by project axis
Scoping by configuration axis
Scoping by task axis
Global scope
Delegation
Referring to scoped keys when running sbt
Examples of scoped key notation
Inspecting scopes
Referring to scopes in a build definition
When to specify a scope
More kinds of setting
Refresher: Settings
Appending to previous values: += and ++=
Computing a value based on other keys values
Settings with dependencies
When settings are undefined
Tasks based on other keys values
Tasks with dependencies
Appending with dependencies: += and ++=
Library dependencies
Unmanaged dependencies
Managed Dependencies
The libraryDependencies key
Getting the right Scala version with %%
Ivy revisions
Resolvers
Overriding default resolvers
Per-configuration dependencies
Multi-project builds
Multiple projects
Dependencies
Aggregation
Classpath dependencies
Per-configuration classpath dependencies
Default root project
Navigating projects interactively
Common code
Using plugins
What is a plugin?
Declaring a plugin
Enabling and disabling auto plugins
Global plugins
Available Plugins
Custom settings and tasks
Defining a key
Implementing a task
Use plugins!
.scala build definition
sbt is recursive
.scala source files in the build definition project
Relating build.sbt to Build.scala
When to use .scala files
The build definition project in interactive mode
Reminder: it s all immutable
Getting Started summary
sbt: The Core Concepts
Advanced Notes
Contents in Depth
Combined Pages
Documentation
Download
Community