====================== Command Line Reference ====================== This page is a relatively complete list of command line options, commands, and tasks you can use from the sbt interactive prompt or in batch mode. See :doc:`Running ` in the Getting Started Guide for an intro to the basics, while this page has a lot more detail. Notes on the command line ------------------------- - There is a technical distinction in sbt between *tasks*, which are "inside" the build definition, and *commands*, which manipulate the build definition itself. If you're interested in creating a command, see :doc:`/Extending/Commands`. This specific sbt meaning of "command" means there's no good general term for "thing you can type at the sbt prompt", which may be a setting, task, or command. - Some tasks produce useful values. The ``toString`` representation of these values can be shown using ``show `` to run the task instead of just ````. - In a multi-project build, execution dependencies and the ``aggregate`` setting control which tasks from which projects are executed. See :doc:`multi-project builds `. Project-level tasks ------------------- - ``clean`` Deletes all generated files (the ``target`` directory). - ``publishLocal`` Publishes artifacts (such as jars) to the local Ivy repository as described in :doc:`Publishing`. - ``publish`` Publishes artifacts (such as jars) to the repository defined by the ``publishTo`` setting, described in :doc:`Publishing`. - ``update`` Resolves and retrieves external dependencies as described in :doc:`library dependencies `. Configuration-level tasks ------------------------- Configuration-level tasks are tasks associated with a configuration. For example, ``compile``, which is equivalent to ``compile:compile``, compiles the main source code (the ``compile`` configuration). ``test:compile`` compiles the test source code (test ``test`` configuration). Most tasks for the ``compile`` configuration have an equivalent in the ``test`` configuration that can be run using a ``test:`` prefix. - ``compile`` Compiles the main sources (in the ``src/main/scala`` directory). ``test:compile`` compiles test sources (in the ``src/test/scala/`` directory). - ``console`` Starts the Scala interpreter with a classpath including the compiled sources, all jars in the ``lib`` directory, and managed libraries. To return to sbt, type ``:quit``, Ctrl+D (Unix), or Ctrl+Z (Windows). Similarly, ``test:console`` starts the interpreter with the test classes and classpath. - ``consoleQuick`` Starts the Scala interpreter with the project's compile-time dependencies on the classpath. ``test:consoleQuick`` uses the test dependencies. This task differs from ``console`` in that it does not force compilation of the current project's sources. - ``consoleProject`` Enters an interactive session with sbt and the build definition on the classpath. The build definition and related values are bound to variables and common packages and values are imported. See the :doc:`consoleProject documentation ` for more information. - ``doc`` Generates API documentation for Scala source files in ``src/main/scala`` using scaladoc. ``test:doc`` generates API documentation for source files in ``src/test/scala``. - ``package`` Creates a jar file containing the files in ``src/main/resources`` and the classes compiled from ``src/main/scala``. ``test:package`` creates a jar containing the files in ``src/test/resources`` and the class compiled from ``src/test/scala``. - ``packageDoc`` Creates a jar file containing API documentation generated from Scala source files in ``src/main/scala``. ``test:packageDoc`` creates a jar containing API documentation for test sources files in ``src/test/scala``. - ``packageSrc``: Creates a jar file containing all main source files and resources. The packaged paths are relative to ``src/main/scala`` and ``src/main/resources``. Similarly, ``test:packageSrc`` operates on test source files and resources. - ``run *`` Runs the main class for the project in the same virtual machine as ``sbt``. The main class is passed the ``argument``\ s provided. Please see :doc:`Running-Project-Code` for details on the use of ``System.exit`` and multithreading (including GUIs) in code run by this action. ``test:run`` runs a main class in the test code. - ``runMain *`` Runs the specified main class for the project in the same virtual machine as ``sbt``. The main class is passed the ``argument``\ s provided. Please see :doc:`Running-Project-Code` for details on the use of ``System.exit`` and multithreading (including GUIs) in code run by this action. ``test:runMain`` runs the specified main class in the test code. - ``test`` Runs all tests detected during test compilation. See :doc:`Testing` for details. - ``testOnly *`` Runs the tests provided as arguments. ``*`` (will be) interpreted as a wildcard in the test name. See :doc:`Testing` for details. - ``testQuick *`` Runs the tests specified as arguments (or all tests if no arguments are given) that: 1. have not been run yet OR 2. failed the last time they were run OR 3. had any transitive dependencies recompiled since the last successful run ``*`` (will be) interpreted as a wildcard in the test name. See :doc:`Testing` for details. General commands ---------------- - ``exit`` or ``quit`` End the current interactive session or build. Additionally, ``Ctrl+D`` (Unix) or ``Ctrl+Z`` (Windows) will exit the interactive prompt. - ``help `` Displays detailed help for the specified command. If the command does not exist, ``help`` lists detailed help for commands whose name or description match the argument, which is interpreted as a regular expression. If no command is provided, displays brief descriptions of the main commands. Related commands are ``tasks`` and ``settings``. - ``projects [add|remove ]`` List all available projects if no arguments provided or adds/removes the build at the provided URI. (See :doc:`/Getting-Started/Full-Def/` for details on multi-project builds.) - ``project `` Change the current project to the project with ID ````. Further operations will be done in the context of the given project. (See :doc:`/Getting-Started/Full-Def/` for details on multiple project builds.) - ``~ `` Executes the project specified action or method whenever source files change. See :doc:`/Detailed-Topics/Triggered-Execution` for details. - ``< filename`` Executes the commands in the given file. Each command should be on its own line. Empty lines and lines beginning with '#' are ignored - ``+ `` Executes the project specified action or method for all versions of Scala defined in the ``crossScalaVersions`` setting. - ``++ `` Temporarily changes the version of Scala building the project and executes the provided command. ```` is optional. The specified version of Scala is used until the project is reloaded, settings are modified (such as by the ``set`` or ``session`` commands), or ``++`` is run again. ```` does not need to be listed in the build definition, but it must be available in a repository. - ``; A ; B`` Execute A and if it succeeds, run B. Note that the leading semicolon is required. - ``eval `` Evaluates the given Scala expression and returns the result and inferred type. This can be used to set system properties, as a calculator, to fork processes, etc ... For example: :: > eval System.setProperty("demo", "true") > eval 1+1 > eval "ls -l" ! Commands for managing the build definition ------------------------------------------ - ``reload [plugins|return]`` If no argument is specified, reloads the build, recompiling any build or plugin definitions as necessary. ``reload plugins`` changes the current project to the build definition project (in ``project/``). This can be useful to directly manipulate the build definition. For example, running ``clean`` on the build definition project will force snapshots to be updated and the build definition to be recompiled. ``reload return`` changes back to the main project. - ``set `` Evaluates and applies the given setting definition. The setting applies until sbt is restarted, the build is reloaded, or the setting is overridden by another ``set`` command or removed by the ``session`` command. See :doc:`.sbt build definition ` and :doc:`Inspecting-Settings` for details. - ``session `` Manages session settings defined by the ``set`` command. It can persist settings configured at the prompt. See :doc:`Inspecting-Settings` for details. - ``inspect `` Displays information about settings, such as the value, description, defining scope, dependencies, delegation chain, and related settings. See :doc:`Inspecting-Settings` for details. Command Line Options -------------------- System properties can be provided either as JVM options, or as SBT arguments, in both cases as ``-Dprop=value``. The following properties influence SBT execution. Also see :doc:`Launcher`. .. raw:: html .. raw:: html
*Property* .. raw:: html *Values* .. raw:: html *Default* .. raw:: html *Meaning* .. raw:: html
``sbt.log.noformat`` .. raw:: html Boolean .. raw:: html false .. raw:: html If true, disable ANSI color codes. Useful on build servers or terminals that don't support color. .. raw:: html
``sbt.global.base`` .. raw:: html Directory .. raw:: html ``~/.sbt`` .. raw:: html The directory containing global settings and plugins .. raw:: html
``sbt.ivy.home`` .. raw:: html Directory .. raw:: html ``~/.ivy2`` .. raw:: html The directory containing the local Ivy repository and artifact cache .. raw:: html
``sbt.boot.directory`` .. raw:: html Directory .. raw:: html ``~/.sbt/boot`` .. raw:: html Path to shared boot directory .. raw:: html
``sbt.main.class`` .. raw:: html String .. raw:: html
``xsbt.inc.debug`` .. raw:: html Boolean .. raw:: html false .. raw:: html
``sbt.version`` .. raw:: html Version .. raw:: html 0.11.3 .. raw:: html sbt version to use, usually taken from project/build.properties .. raw:: html
``sbt.boot.properties`` .. raw:: html File .. raw:: html
``sbt.override.build.repos`` .. raw:: html Boolean .. raw:: html false .. raw:: html If true, repositories configured in a build definition are ignored and the repositories configured for the launcher are used instead. See ``sbt.repository.config`` and the :doc:`Launcher` documentation. .. raw:: html
``sbt.repository.config`` .. raw:: html File .. raw:: html ~/.sbt/repositories .. raw:: html A file containing the repositories to use for the launcher. The format is the same as a ``[repositories]`` section for a :doc:`Launcher` configuration file. This setting is typically used in conjuction with setting ``sbt.override.build.repos`` to true (see previous row and the :doc:`Launcher` documentation). .. raw:: html