実行

始める sbt 5/14 ページ

このページではプロジェクトをセットアップした後の 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 "test-only TestA TestB"

この例では、test-onlyTestATestB の二つの引数を取る。 アクションは順に実行される(cleancompile、そして test-only)。

継続的ビルドとテスト

編集-コンパイル-テストのサイクルを速めるために、ソースファイルを保存するたびに sbt を使って自動的に再コンパイルすることができる。

ソースファイルが変更されたことを検知してアクションを実行するには、 アクションの先頭に ~ を書く。例えば、インタラクティブモードで、これを試してみよう:

> ~ compile

エンターを押すと、変更の監視を中止できる。

先頭の ~ はインタラクティブモードでもバッチモードでも使うことができる。

詳しくは、[[Triggered Execution]]参照。

よく使われるアクション

以下に、最もよく使われる sbt コマンドを紹介する。より完全な一覧は [[Command Line Reference]] にある。

  • clean 全ての生成されたファイル(target ディレクトリ)を削除する。
  • compilesrc/main/scala ディレクトリにある)メインのソースをコンパイルする。
  • test 全てのテストをコンパイルし実行する。
  • console コンパイル済みソースと依存ライブラリにクラスパスを通して、Scala インタプリタを開始する。 sbt に戻るには、:quit と打ち込むか、Ctrl+D (Unix) か Ctrl+Z (Windows) を使う。
  • run <argument>* sbt と同じ仮想マシン上で、プロジェクトのメインクラスを実行する。
  • package src/main/resources 内のファイルと src/main/scala からコンパイルされたクラスを含む jar を作る。
  • help <command> 指定されたコマンドの詳しい説明を表示する。コマンドが指定されていない場合は、 全てのコマンドの簡単な説明を表示する。
  • reload ビルド定義(build.sbtproject/*.scalaproject/*.sbt ファイル)を再読み込みする。 ビルド定義を変更した場合に必要。

タブ補完

インタラクティブモードには、空のプロンプトの状態を含め、タブ補完がある。 sbt の特殊な慣例として、タブを一度押すとよく使われる候補だけが表示され、 複数回押すと、より回りくどい候補が表示される。

履歴コマンド

インタラクティブモードは、たとえ sbt を終了して再起動した後でも履歴を覚えている。 履歴にアクセスする最も簡単な方法は矢印キーを使うことだ。以下のコマンドも使うことができる:

  • ! 履歴コマンドのヘルプを表示する。
  • !! 直前のコマンドを再実行する。
  • !: 全てのコマンド履歴を表示する。
  • !:n 最後の n コマンドを表示する。
  • !n !: で表示されたインデックス n のコマンドを実行する。
  • !-n n個前のコマンドを実行する。
  • !string  'string' から始まる最近のコマンドを実行する。
  • !?string 'string' を含む最近のコマンドを実行する。

続いては

build.sbt を理解する