このページではプロジェクトをセットアップした後の sbt
の使い方を説明する。
君がsbt をインストールして、Hello, Worldか他のプロジェクトを作ったことを前提にする。
プロジェクトのディレクトリで、sbt を引数なしで実行する:
$ sbt
sbt をコマンドライン引数なしで実行するとインタラクティブモードが開始する。 インタラクティブモードにはコマンドプロンプト(とタブ補完と履歴も!)がある。
例えば、compile
と sbt プロンプトに打ち込む:
> compile
もう一度 compile
するには、上矢印を押して、エンターを押す。
君のプログラムを実行するには、run
と打ち込む。
インタラクティブモードを終了するには、exit
と打ち込むか、Ctrl+D (Unix) か Ctrl+Z (Windows) を用いる。
sbt アクションを空白で区切られたリストとして引数に渡すことで、sbt をバッチモードで実行することができる。
引数を取る sbt コマンドに関しては、コマンドと引数の両方を引用符で囲むことで一つの引数として sbt
に渡す。
例えば、
$ sbt clean compile "testOnly TestA TestB"
この例では、testOnly
は TestA
と TestB
の二つの引数を取る。
アクションは順に実行される(clean
、compile
、そして testOnly
)。
編集-コンパイル-テストのサイクルを速めるために、ソースファイルを保存するたびに sbt を使って自動的に再コンパイルすることができる。
ソースファイルが変更されたことを検知してアクションを実行するには、
アクションの先頭に ~
を書く。例えば、インタラクティブモードで、これを試してみよう:
> ~ compile
エンターを押すと、変更の監視を中止できる。
先頭の ~
はインタラクティブモードでもバッチモードでも使うことができる。
詳しくは、Triggered Execution 参照。
以下に、最もよく使われる sbt コマンドを紹介する。より完全な一覧は Command Line Reference にある。
clean | 全ての生成されたファイル(target ディレクトリ)を削除する。 |
compile | メインのソース (src/main/scala と src/main/java ディレクトリにある をコンパイルする。 |
test | 全てのテストをコンパイルし実行する。 |
console | コンパイル済みソースと依存ライブラリにクラスパスを通して、Scala インタプリタを開始する。 sbt に戻るには、:quit と打ち込むか、Ctrl+D (Unix) か Ctrl+Z (Windows) を使う。 |
sbt と同じ仮想マシン上で、プロジェクトのメインクラスを実行する。 | |
package | src/main/resources 内のファイルと src/main/scala と src/main/java からコンパイルされたクラスを含む jar を作る。 |
help <command> | 指定されたコマンドの詳しい説明を表示する。コマンドが指定されていない場合は、 全てのコマンドの簡単な説明を表示する。 |
reload | ビルド定義(build.sbt、 project/*.scala、 project/*.sbt ファイル)を再読み込みする。 ビルド定義を変更した場合に必要。 |
インタラクティブモードには、空のプロンプトの状態を含め、タブ補完がある。 sbt の特殊な慣例として、タブを一度押すとよく使われる候補だけが表示され、 複数回押すと、より回りくどい候補が表示される。
インタラクティブモードは、たとえ sbt を終了して再起動した後でも履歴を覚えている。 履歴にアクセスする最も簡単な方法は矢印キーを使うことだ。以下のコマンドも使うことができる:
! | 履歴コマンドのヘルプを表示する。 |
!! | 直前のコマンドを再実行する。 |
!: | 全てのコマンド履歴を表示する。 |
!:n | 最後の n コマンドを表示する。 |
!n | !: で表示されたインデックス n のコマンドを実行する。 |
!-n | n個前のコマンドを実行する。 |
!string | 'string' から始まる最近のコマンドを実行する。 |
!?string | 'string' を含む最近のコマンドを実行する。 |