Scala sbtを使う

Scalaで1ファイルだけのプログラムを書くだけなら、Javaのように

$ scalac Main.scala
$ scala Main

もしくはソースファイルを直接

$ scala Main.scala

などでも良いが、sbtを使うと色々便利。

sbtの用途は

  • Scalaでプロジェクトを作る
  • ライブラリを読み込む

など

以下、公式のリファレンスなどが分かりやすいので、ここでは実行するコマンドのみ載せる。

新規プロジェクト作成

適当にターミナルでデスクトップなどに移動し、

$ sbt new sbt/scala-seed.g8

でOK。 プロジェクト名の入力を求められるので、適当に入力するとその名前でディレクトリが作成され、 中に最小限のプロジェクトファイルが作成される。

.gitignoreの設置

もしgitを使うのであれば、

$ git init

したのち、.gitignoreに

target/

を追加。

プログラムの場所

新規プロジェクト作成時に src/main/scala/example/Hello.scala が作成される。 パッケージ名とクラス名に注意して src/main/scala/ 以下の好きな場所にコピーなりリネームなりすれば良い。

実行方法

$ sbt
sbt:Hello> run

初期起動時はライブラリの読み込みなどでちょっと時間がかかるが、それ以降は早い。

外部ライブラリの読み込み

build.sbtを開き

libraryDependencies += "org.apache.commons" % "commons-csv" % "1.5",

のように追加。追加場所はlibraryDependencies += scalaTest % Testが既にあるはずなので、その下に。 追加する前の行末にカンマを入れ忘れないように注意。

ライブラリによってはsbt用の書き方のサンプルがないことがあるが(Javaのライブラリなど)、 Mavenなどの例はあるはず。

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-csv</artifactId>
    <version>1.5</version>
</dependency>

などを上記の例に沿って書き換えれば使える。

プログラム内で使うファイルの設置場所

csvファイルなど。 これはsbtのリファレンスを読んでもよくわからなかったが、 playframeworkの例だと dist/ 以下が良いように思う。

参考