The help
command is used to show available commands and search the
help for commands, tasks, or settings. If run without arguments, help
lists the available commands.
> help
help Displays this help message or prints detailed help on
requested commands (run 'help <command>').
about Displays basic information about sbt and the build.
reload (Re)loads the project in the current directory
...
> help compile
If the argument passed to help
is the name of an existing command,
setting or task, the help for that entity is displayed. Otherwise, the
argument is interpreted as a regular expression that is used to search
the help of all commands, settings and tasks.
The tasks
command is like help
, but operates only on tasks.
Similarly, the settings
command only operates on settings.
See also help help
, help tasks
, and help settings
.
The tasks
command, without arguments, lists the most commonly used
tasks. It can take a regular expression to search task names and
descriptions. The verbosity can be increased to show or search less
commonly used tasks. See help tasks
for details.
The settings
command, without arguments, lists the most commonly used
settings. It can take a regular expression to search setting names and
descriptions. The verbosity can be increased to show or search less
commonly used settings. See help settings
for details.
The inspect
command displays several pieces of information about a
given setting or task, including the dependencies of a task/setting as
well as the tasks/settings that depend on the it. For example,
> inspect Test/compile
...
[info] Dependencies:
[info] Test / manipulateBytecode
[info] Test / enableBinaryCompileAnalysis
[info] Test / compileIncSetup
[info] Reverse dependencies:
[info] Test / products
[info] Test / discoveredMainClasses
[info] Test / printWarnings
[info] Test / definedTestNames
[info] Test / definedTests
...
See the Inspecting Settings page for details.
In addition to displaying immediate forward and reverse dependencies as
described in the previous section, the inspect
command can display the
full dependency tree for a task or setting. For example,
> inspect tree clean
[info] clean = Task[Unit]
[info] +-clean / streams = Task[sbt.std.TaskStreams[sbt.internal.util.Init$ScopedKey[_ <: Any]]]
[info] | +-Global / streamsManager = Task[sbt.std.Streams[sbt.internal.util.Init$ScopedKey[_ <: Any]]]
[info] |
[info] +-cleanFiles = Task[scala.collection.Seq[java.io.File]]
[info] | +-cleanKeepFiles = Vector(<project>/target/.history)
[info] | | +-history = Some(<project>/target/.history)
[info] | | +-target = target
[info] | | +-baseDirectory =
...
For each task, inspect tree
show the type of the value generated by
the task. For a setting, the toString
of the setting is displayed. See
the Inspecting Settings page for details on the
inspect
command.
While the help
, settings
, and tasks
commands display a description
of a task, the inspect
command also shows the type of a setting or
task and the value of a setting. For example:
> inspect update
[info] Task: sbt.librarymanagement.UpdateReport
[info] Description:
[info] Resolves and optionally retrieves dependencies, producing a report.
...
> inspect scalaVersion
[info] Setting: java.lang.String = 2.12.6
[info] Description:
[info] The version of Scala used for building.
...
See the Inspecting Settings page for details.
See the Inspecting Settings page for details.
The inspect
command can help find scopes where a setting or task is
defined. The following example shows that different options may be
specified to the Scala for testing and API documentation generation.
> inspect scalacOptions
...
[info] Related:
[info] Compile / scalacOptions
[info] Global / scalacOptions
[info] Test / scalacOptions
See the Inspecting Settings page for details.
The projects
command displays the currently loaded projects. The
projects are grouped by their enclosing build and the current project is
indicated by an asterisk. For example,
> projects
[info] In file:/home/user/demo/
[info] * parent
[info] sub
[info] In file:/home/user/dep/
[info] sample
session list
displays the settings that have been added at the command
line for the current project. For example,
> session list
1. maxErrors := 5
2. scalacOptions += "-explaintypes"
session list-all
displays the settings added for all projects. For
details, see help session
.
> about
[info] This is sbt 1.1.5
[info] The current project is {file:~/code/sbt.github.com/}default
[info] The current project is built against Scala 2.12.6
[info] Available Plugins: sbt.plugins.IvyPlugin, sbt.plugins.JvmPlugin, sbt.plugins.CorePlugin, sbt.plugins.JUnitXmlReportPlugin, sbt.plugins.Giter8TemplatePlugin
[info] sbt, sbt plugins, and build definitions are using Scala 2.12.6
The inspect
command shows the value of a setting as part of its
output, but the show
command is dedicated to this job. It shows the
output of the setting provided as an argument. For example,
> show organization
[info] com.github.sbt
The show
command also works for tasks, described next.
> show update
... <output of update> ...
[info] Update report:
[info] Resolve time: 122 ms, Download time: 5 ms, Download size: 0 bytes
[info] compile:
[info] org.scala-lang:scala-library:
[info] - 2.12.6
[info] ...
The show
command will execute the task provided as an argument and
then print the result. Note that this is different from the behavior of
the inspect
command (described in other sections), which does not
execute a task and thus can only display its type and not its generated
value.
> show compile:dependencyClasspath
...
[info] ArrayBuffer(Attributed(/Users/foo/.sbt/boot/scala-2.12.6/lib/scala-library.jar))
For the test classpath,
> show Test/dependencyClasspath
...
[info] List(Attributed(/Users/foo/code/sbt.github.com/target/scala-2.12/classes), Attributed(~/.sbt/boot/scala-2.12.6/lib/scala-library.jar), Attributed(/Users/foo/.ivy2/cache/junit/junit/jars/junit-4.8.2.jar))
...
sbt detects the classes with public, static main methods for use by the
run
method and to tab-complete the runMain
method. The
discoveredMainClasses
task does this discovery and provides as its
result the list of class names. For example, the following shows the
main classes discovered in the main sources:
> show compile:discoveredMainClasses
... <runs compile if out of date> ...
[info] List(org.example.Main)
sbt detects tests according to fingerprints provided by test frameworks.
The definedTestNames
task provides as its result the list of test
names detected in this way. For example,
> show Test/definedTestNames
... < runs test:compile if out of date > ...
[info] List(org.example.TestA, org.example.TestB)