1. 実行

実行 

このページでは、プロジェクトを設定した後に sbt を使用する方法について説明します。 sbt をインストールし、sbt 例を実行したことを前提としています。

sbt シェル 

プロジェクトディレクトリで引数なしで sbt を実行します

$ sbt

コマンドライン引数なしで sbt を実行すると、sbt シェルが起動します。 sbt シェルにはコマンドプロンプトがあります (タブ補完と履歴付き!)。

たとえば、sbt シェルで `compile` と入力できます

> compile

もう一度 `compile` するには、上矢印キーを押してから Enter キーを押します。

プログラムを実行するには、`run` と入力します。

sbt シェルを終了するには、`exit` と入力するか、Ctrl+D (Unix) または Ctrl+Z (Windows) を使用します。

バッチモード 

sbt コマンドのスペース区切りリストを引数として指定して、sbt をバッチモードで実行することもできます。 引数を取る sbt コマンドの場合は、コマンドと引数を引用符で囲んで、sbt に 1 つの引数として渡します。 例えば、

$ sbt clean compile "testOnly TestA TestB"

この例では、`testOnly` には `TestA` と `TestB` という引数があります。 コマンドは順番に実行されます (`clean`、`compile`、次に `testOnly`)。

**注**: バッチモードでの実行には、毎回 JVM のスピンアップと JIT が必要になるため、**ビルドの実行速度が大幅に低下します**。 日常のコーディングでは、sbt シェルまたは以下で説明する継続的なビルドとテスト機能を使用することをお勧めします。

sbt 0.13.16 以降、sbt でバッチモードを使用すると、情報提供の起動メッセージが表示されます。

$ sbt clean compile
[info] Executing in batch mode. For better performance use sbt's shell
...

これは `sbt compile` でのみトリガーされ、`suppressSbtShellNotification := true` で抑制することもできます。

継続的なビルドとテスト 

編集-コンパイル-テストサイクルを高速化するために、ソースファイルを保存するたびに sbt に自動的に再コンパイルまたはテストを実行するように依頼できます。

コマンドの前に `~` を付けることで、1 つ以上のソースファイルが変更されたときにコマンドを実行するようにします。 たとえば、sbt シェルで試してみてください

> ~testQuick

Enter キーを押して、変更の監視を停止します。

`~` プレフィックスは、sbt シェルまたはバッチモードのいずれかで使用できます。

詳細については、トリガー実行を参照してください。

一般的なコマンド 

最も一般的な sbt コマンドをいくつか紹介します。 完全なリストについては、コマンドラインリファレンスを参照してください。

コマンド 説明
clean 生成されたすべてのファイルを削除します (targetディレクトリ内)。
compile メインソースをコンパイルします (src/main/scalaおよびsrc/main/javaディレクトリ内)。
test すべてのテストをコンパイルして実行します。
console コンパイルされたソースとすべての依存関係を含むクラスパスを使用して、Scala インタプリタを起動します。 sbt に戻るには、:quit、Ctrl+D (Unix)、または Ctrl+Z (Windows) と入力します。
run <引数>* sbt と同じ仮想マシンでプロジェクトのメインクラスを実行します。
package src/main/resourcesにあるファイルと、src/main/scalaおよびsrc/main/java.
help <コマンド> 指定されたコマンドの詳細なヘルプを表示します。 コマンドが指定されていない場合は、すべてのコマンドの簡単な説明を表示します。
reload ビルド定義をリロードします (build.sbt, project/*.scala, project/*.sbtファイル)。 ビルド定義を変更した場合に必要です。

タブ補完 

sbt シェルには、空のプロンプトも含めて、タブ補完機能があります。 sbt の特別な規則として、Tab キーを 1 回押すと、最も可能性の高い補完のサブセットのみが表示され、複数回押すと、より詳細な選択肢が表示されます。

sbt シェル履歴 

sbt シェルは、sbt を終了して再起動しても履歴を記憶しています。 履歴にアクセスする最も簡単な方法は、上矢印キーを押して、以前に入力したコマンドを循環することです。

**注**: `Ctrl-R` は履歴を逆方向に*インクリメンタル検索*します。

JLine の端末環境との統合により、`$HOME/.inputrc` ファイルを変更することで sbt シェルをカスタマイズできます。 たとえば、`$HOME/.inputrc` の次の設定により、上矢印キーと下矢印キーで履歴のプレフィックスベースの検索を実行できます。

"\e[A": history-search-backward
"\e[B": history-search-forward
"\e[C": forward-char
"\e[D": backward-char

sbt シェルは次のコマンドもサポートしています

コマンド 説明
! 履歴コマンドのヘルプを表示します。
!! 前のコマンドをもう一度実行します。
!: 以前のすべてのコマンドを表示します。
!:n 最後のn個のコマンドを表示します。
!n インデックスnn!:コマンドで表示されます。
!-n このコマンドの n 個前のコマンドを実行します。
!string 'string' で始まる最新のコマンドを実行します。
!?string 'string' を含む最新のコマンドを実行します。