1. コマンドラインリファレンス

コマンドラインリファレンス 

このページでは、sbt のインタラクティブプロンプトまたはバッチモードで使用できるコマンドラインオプション、コマンド、およびタスクの比較的完全なリストを示します。基本的な概要については、入門ガイドの実行を参照してください。このページには、より詳細な情報が記載されています。

コマンドラインに関する注意事項 

  • sbt では、ビルド定義の「内部」にある*タスク*と、ビルド定義自体を操作する*コマンド*を技術的に区別しています。コマンドの作成に興味がある場合は、コマンドを参照してください。「コマンド」という sbt 固有の意味のため、「sbt プロンプトで入力できるもの」を表す適切な一般用語がなく、設定、タスク、またはコマンドのいずれかになります。
  • 一部のタスクは有用な値を生成します。これらの値の `toString` 表現は、単に `<task>` ではなく `show <task>` を使用してタスクを実行することで表示できます。
  • マルチプロジェクトビルドでは、実行の依存関係と集約設定によって、どのプロジェクトのどのタスクが実行されるかが制御されます。マルチプロジェクトビルドを参照してください。

プロジェクトレベルのタスク 

  • `clean` 生成されたすべてのファイル ( `target` ディレクトリ) を削除します。
  • `publishLocal` 公開の説明に従って、アーティファクト (jar など) をローカル Ivy リポジトリに公開します。
  • `publish` 公開の説明に従って、アーティファクト (jar など) を publishTo 設定で定義されたリポジトリに公開します。
  • `update` ライブラリの依存関係の説明に従って、外部の依存関係を解決して取得します。

設定レベルのタスク 

設定レベルのタスクは、設定に関連付けられたタスクです。たとえば、 `Compile/compile` と同等の `compile` は、メインソースコード ( `compile` 設定) をコンパイルします。 `Test/compile` は、テストソースコード ( `test` 設定) をコンパイルします。 `compile` 設定のほとんどのタスクには、 `Test/` 接頭辞を使用して実行できる `test` 設定で同等のタスクがあります。

  • `compile` メインソース ( `src/main/scala` ディレクトリ内) をコンパイルします。 `Test/compile` はテストソース ( `src/test/scala/` ディレクトリ内) をコンパイルします。
  • `console` コンパイルされたソース、lib ディレクトリ内のすべての jar、および管理対象ライブラリを含むクラスパスを使用して Scala インタプリタを起動します。 sbt に戻るには、:quit、Ctrl+D (Unix)、または Ctrl+Z (Windows) を入力します。同様に、Test/console はテストクラスとクラスパスを使用してインタプリタを起動します。
  • `consoleQuick` プロジェクトのコンパイル時依存関係をクラスパスに含めて Scala インタプリタを起動します。 Test/consoleQuick はテストの依存関係を使用します。このタスクは、現在のプロジェクトのソースのコンパイルを強制しないという点で console とは異なります。
  • `consoleProject` クラスパスに sbt とビルド定義を含むインタラクティブセッションを開始します。ビルド定義と関連する値は変数にバインドされ、共通のパッケージと値がインポートされます。詳細については、consoleProject のドキュメントを参照してください。
  • `doc` `src/main/scala` 内の Scala ソースファイルの API ドキュメントを scaladoc を使用して生成します。 `Test/doc` は `src/test/scala` 内のソースファイルの API ドキュメントを生成します。
  • `package` `src/main/resources` 内のファイルと `src/main/scala` からコンパイルされたクラスを含む jar ファイルを作成します。 `Test/package` は `src/test/resources` 内のファイルと `src/test/scala` からコンパイルされたクラスを含む jar ファイルを作成します。
  • `packageDoc`: `src/main/scala` 内の Scala ソースファイルから生成された API ドキュメントを含む jar ファイルを作成します。 `Test/packageDoc` は `src/test/scala` 内のテストソースファイルの API ドキュメントを含む jar ファイルを作成します.
  • `packageSrc`: すべてのメインソースファイルとリソースを含む jar ファイルを作成します。パッケージ化されたパスは `src/main/scala` および `src/main/resources` に対して相対的です。同様に、`Test/packageSrc` はテストソースファイルとリソースに対して動作します.
  • `run <引数>*` sbt と同じ仮想マシンでプロジェクトのメインクラスを実行します。メインクラスには、指定された引数が渡されます。 `System.exit` の使用と、このアクションによって実行されるコードでのマルチスレッド (GUI を含む) については、プロジェクトコードの実行を参照してください。 `Test/run` はテストコードでメインクラスを実行します。
  • `runMain <メインクラス> <引数>*` sbt と同じ仮想マシンで、プロジェクトの指定されたメインクラスを実行します。メインクラスには、指定された引数が渡されます。 `System.exit` の使用と、このアクションによって実行されるコードでのマルチスレッド (GUI を含む) については、プロジェクトコードの実行を参照してください。 `Test/runMain` はテストコードで指定されたメインクラスを実行します。
  • `test` テストのコンパイル中に検出されたすべてのテストを実行します。詳細については、テストを参照してください。
  • `testOnly <テスト>*` 引数として指定されたテストを実行します。 `*` はテスト名でワイルドカードとして解釈されます (されます)。詳細については、テストを参照してください。
  • `testQuick <テスト>*` 引数として指定されたテスト (または引数が指定されていない場合はすべてのテスト) を実行します。

    1. まだ実行されていない、または
    2. 前回の実行に失敗した、または
    3. 最後に正常に実行されてから推移的な依存関係が再コンパイルされた `*` はテスト名でワイルドカードとして解釈されます (されます)。詳細については、[テスト][Testing] を参照してください。

一般コマンド 

  • `exit` または `quit` 現在のインタラクティブセッションまたはビルドを終了します。さらに、Ctrl+D (Unix) または Ctrl+Z (Windows) はインタラクティブプロンプトを終了します。
  • `help <コマンド>` 指定されたコマンドの詳細なヘルプを表示します。コマンドが存在しない場合、help は、名前または説明が引数と一致するコマンドの詳細なヘルプを一覧表示します。引数は正規表現として解釈されます。コマンドが指定されていない場合は、メインコマンドの簡単な説明が表示されます。関連するコマンドはタスクと設定です。
  • `projects [add|remove <URI>]` 引数が指定されていない場合は、使用可能なすべてのプロジェクトを一覧表示するか、指定された URI にあるビルドを追加/削除します。(マルチプロジェクトビルドの詳細については、マルチプロジェクトビルドを参照してください。)
  • `project <プロジェクト ID>` 現在のプロジェクトを ID が `<プロジェクト ID>` のプロジェクトに変更します。以降の操作は、指定されたプロジェクトのコンテキストで実行されます。(マルチプロジェクトビルドの詳細については、マルチプロジェクトビルドを参照してください。)
  • `~ <コマンド>` ソースファイルが変更されるたびに、プロジェクトで指定されたアクションまたはメソッドを実行します。詳細については、トリガー実行を参照してください。
  • `< ファイル名` 指定されたファイルのコマンドを実行します。各コマンドは独自の行に配置する必要があります。空行と '#' で始まる行は無視されます
  • `+ <コマンド>` crossScalaVersions 設定で定義されている Scala のすべてのバージョンに対して、プロジェクトで指定されたアクションまたはメソッドを実行します。
  • `++ <バージョン|ホームディレクトリ> <コマンド>` プロジェクトをビルドする Scala のバージョンを一時的に変更し、指定されたコマンドを実行します。 `<コマンド>` は省略可能です。指定されたバージョンの Scala は、プロジェクトが再ロードされるか、設定が変更されるか (set または session コマンドによる)、または ++ が再度実行されるまで使用されます。 `<バージョン>` はビルド定義にリストされている必要はありませんが、リポジトリで使用可能である必要があります。または、Scala インストールへのパスを指定します。
  • `; A ; B` A を実行し、成功した場合は B を実行します。先頭のセミコロンが必要であることに注意してください。
  • `eval <Scala 式>` 指定された Scala 式を評価し、結果と推論された型を返します。これは、システムプロパティの設定、電卓、プロセスのフォークなどに使用できます。たとえば

    > eval System.setProperty("demo", "true")
    > eval 1+1
    > eval "ls -l" !
    

ビルド定義を管理するためのコマンド 

  • reload [plugins|return] 引数が指定されていない場合、ビルドをリロードし、必要に応じてビルドまたはプラグイン定義を再コンパイルします。 reload plugins は、現在のプロジェクトをビルド定義プロジェクト(project/内)に変更します。これは、ビルド定義を直接操作する場合に便利です。たとえば、ビルド定義プロジェクトで clean を実行すると、スナップショットが更新され、ビルド定義が再コンパイルされます。 reload return は、メインプロジェクトに戻ります。
  • set <設定式> 指定された設定定義を評価して適用します。設定は、sbt が再起動されるか、ビルドがリロードされるか、設定が別の set コマンドで上書きされるか、session コマンドで削除されるまで適用されます。詳細は、.sbt ビルド定義設定の検査を参照してください。
  • session <コマンド> set コマンドで定義されたセッション設定を管理します。プロンプトで構成された設定を永続化できます。詳細は、設定の検査を参照してください。
  • inspect <設定キー> 値、説明、定義スコープ、依存関係、委任チェーン、関連設定など、設定に関する情報を表示します。詳細は、設定の検査を参照してください。

sbt ランナーの引数 

OSシェルから sbt ランナーを起動する際に、さまざまなシステムプロパティまたはJVMの追加オプションを指定して、その動作に影響を与えることができます。

sbt JVM オプションとシステムプロパティ 

sbt の起動時に JAVA_OPTS または SBT_OPTS 環境変数が定義されている場合、それらの内容は sbt を実行する JVM にコマンドライン引数として渡されます。

現在のディレクトリに .jvmopts という名前のファイルが存在する場合、その内容は sbt の起動時に JAVA_OPTS に追加されます。同様に、.sbtopts または /etc/sbt/sbtopts が存在する場合、それらの内容は SBT_OPTS に追加されます。 JAVA_OPTS のデフォルト値は -Dfile.encoding=UTF8 です。

JVM システムプロパティとコマンドラインオプションを sbt 引数として直接指定することもできます。 -Dkey=val 引数はそのまま JVM に渡され、-J-Xfoo-Xfoo として渡されます。

詳細は、sbt --help を参照してください。

sbt JVM ヒープ、パーマネント領域、およびスタックサイズ 

パーマネント領域の容量が不足している場合、またはワークステーションのメモリが少ない場合は、他の Java アプリケーションと同様に JVM 構成を調整します。

たとえば、メモリ関連の一般的なオプションセットは次のとおりです。

export SBT_OPTS="-Xmx2048M -Xss2M"
sbt

または、このセッションのみに指定する場合は、次のようになります。

sbt -J-Xmx2048M -J-Xss2M

ブートディレクトリ 

sbt は単なるブートストラップであり、sbt の実際の中身、Scala コンパイラと標準ライブラリは、デフォルトでは共有ディレクトリ $HOME/.sbt/boot/ にダウンロードされます。

このディレクトリの場所を変更するには、sbt.boot.directory システムプロパティを設定します。相対パスは現在の作業ディレクトリに対して解決されます。これは、プロジェクト間でブートディレクトリを共有したくない場合に便利です。たとえば、次の例では、0.11 より前のスタイルを使用して、ブートディレクトリを project/boot/ に配置しています。

sbt -Dsbt.boot.directory=project/boot/

ターミナルのエンコーディング 

ターミナルで使用される文字エンコーディングは、プラットフォームの Java のデフォルトエンコーディングと異なる場合があります。この場合、file.encoding=<encoding> システムプロパティを指定する必要があります。これは次のようになります。

export JAVA_OPTS="-Dfile.encoding=Cp1252"
sbt

HTTP/HTTPS/FTP プロキシ 

Unix では、sbt は標準の http_proxyhttps_proxy、および ftp_proxy 環境変数から HTTP、HTTPS、または FTP プロキシ設定を取得します。認証が必要なプロキシの背後にある場合は、sbt の起動時にいくつかの補足フラグを渡す必要があります。詳細は、JVM ネットワークシステムプロパティを参照してください。

例えば

sbt -Dhttp.proxyUser=username -Dhttp.proxyPassword=mypassword

Windows では、スクリプトでプロキシホスト、ポート、および該当する場合はユーザー名とパスワードのプロパティを設定する必要があります。たとえば、HTTP の場合は次のようになります。

sbt -Dhttp.proxyHost=myproxy -Dhttp.proxyPort=8080 -Dhttp.proxyUser=username -Dhttp.proxyPassword=mypassword

上記のコマンドラインで httphttps または ftp に置き換えて、HTTPS または FTP を構成します。

その他のシステムプロパティ 

以下のシステムプロパティも sbt に渡すことができます。

プロパティ デフォルト 意味
sbt.banner ブール値 true(1.3以降) 新機能を宣伝するウェルカムバナーを表示します。
sbt.boot.directory ディレクトリ ~/.sbt/boot 共有ブートディレクトリへのパス。CI環境でsbtを使用し、実行間でsbtブートクラスをキャッシュする場合に明示的に定義する必要があります。sbt.boot.directory明示的に定義する必要があります。 CI 環境で sbt を使用していて、実行間で sbt ブートクラスをキャッシュしたい場合。
sbt.boot.properties ファイル 概ねsbt.boot.propertiessbt ランチャー内部で、sbt のバージョンに固有です。 sbt ブートプロパティ ファイルを見つけるためのパス。これは、sbt ベースディレクトリ、ユーザーのホームディレクトリ、または sbt jar ファイルの場所に対する相対パス、または絶対パスまたは絶対ファイル URI にすることができます。
sbt.ci ブール値 false(環境変数BUILD_NUMBERが設定されていない限り) 継続的インテグレーション環境向け。スーパーシェルと色を抑制します。
sbt.client ブール値 false
sbt.color 文字列 auto 置き換えsbt.log.format。色を有効にするには、alwaysまたはtrueを使用します。色を無効にするには、neverまたはfalse> を使用します。出力が色をサポートする端末(パイプではない)の場合に色を使用するには、auto.
sbt.coursier ブール値 true(1.3以降) パッケージの取得に coursier を使用します。(も参照してくださいsbt.ivy.)
sbt.coursier.home ディレクトリ CoursierDependencyResolution.defaultCacheLocation(1.3以降) coursier アーティファクトキャッシュの場所。デフォルトは Coursier キャッシュ解決ロジック で定義されています。値は `csrCacheDirectory` コマンドで確認できます。CI 環境で coursier を使用していて、実行間でアーティファクトをキャッシュしたい場合に明示的に定義する必要があります。sbt.coursier.home明示的に定義する必要があります。 coursier を CI 環境で使用していて、実行間で成果物をキャッシュしたい場合。
sbt.extraClasspath クラスパスのエントリ sbt のクラスパスに追加される (jar ファイルまたはディレクトリ)。エントリはコンマで区切られていることに注意してください。例:entry1, entry2,..。も参照してくださいresourcesbt ランチャー のドキュメントにあります。
sbt.genbuildprops ブール値 true 生成build.propertiesが見つからない場合。設定されていない場合、これはsbt.skip.version.write.
sbt.global.base ディレクトリ $HOME/.sbt/1.0 グローバル設定とプラグインを含むディレクトリ。
xsbt.inc.debug ブール値 false 増分デバッガーの追加デバッグ。
sbt.ivy ブール値 true(<1.3) パッケージの取得に Ivy を使用します。
sbt.ivy.home ディレクトリ ~/.ivy2 ローカル Ivy リポジトリとアーティファクトキャッシュを含むディレクトリ。CI環境でsbtを使用し、実行間でivyアーティファクトをキャッシュする場合に明示的に定義する必要があります。sbt.ivy.home明示的に定義する必要があります。 CI 環境で sbt を使用していて、実行間で Ivy 成果物をキャッシュしたい場合。
sbt.log.noformat ブール値 false true の場合、ANSI カラーコードを無効にします。ビルドサーバーまたは色をサポートしていない端末で役立ちます。
sbt.main.class 文字列 sbt.xMain 使用する sbt クラス (代替手段 にはsbt.ConsoleMainsbt.ScriptMain).
sbt.offline ブール値 false リポジトリからのクラスの取得を回避します。
sbt.override.build.repos ブール値 false true の場合、ビルド定義で構成されたリポジトリは無視され、ランチャー用に構成されたリポジトリが代わりに使用されます。を参照してください。sbt.repository.configsbt ランチャー のドキュメント。
sbt.progress 文字列 ? 使用alwaysを使用して進行状況を表示します(「スーパーシェル」)。
sbt.repository.config ファイル ~/.sbt/repositories ランチャーに使用するリポジトリを含むファイル。形式は[repositories]セクションと同じです sbt ランチャー 構成ファイル。この設定は通常、設定と組み合わせて使用​​されますsbt.override.build.repostrue(参照sbt.override.build.repossbt ランチャー のドキュメント)。
sbt.resident.limit 0 保持する scala コンパイラの数。この実験的な機能は、コンパイル時間を改善することを目的としていました。成功したようには見えず、このフラグはおそらく削除されます。
sbt.skip.version.write ブール値 false 生成build.propertiesが見つからない場合。を参照してください。sbt.genbuildprops.
sbt.supershell ブール値 true色が有効になっている場合 スーパーシェルを使用します(シェルの下部に進行状況を表示します)。
sbt.supershell.sleep 100 スーパーシェルの進行状況領域の更新間隔を待機する時間。
sbt.task.timings ブール値 false タスクの実行に elapsedれた時間を測定します。
sbt.task.timings.omit.paths ブール値 false タイミングを報告するときにパスを省略します。
sbt.task.timings.on.shutdown ブール値 false JVM シャットダウン時にタイミングを報告します(タスク完了時ではなく)。
sbt.task.timings.threshold 文字列 0 アイテムがこのしきい値を下回る場合、タイミングレポートから省略します。
sbt.traces ブール値 false タスクの Chrome トレースイベント形式ログを生成します。
sbt.turbo ブール値 false 追加のレイヤードクラスローダーを使用します。
sbt.version バージョン 1.9.8 使用する sbt のバージョン。通常はproject/build.properties.
sbt.watch.mode 文字列 auto もしポーリングの場合、更新のためにファイルシステムを定期的にチェックします。