Basics
プロジェクト作成
以下の構成でファイル/ディレクトリをあらかじめ作成します
- buid.sbt
- project/build.properties
- src/main/java/
- src/main/scala/
- src/main/resources/
- src/test/java/
- src/test/scala/
- src/test/resources/
- lib/
build.sbt
にプロジェクトの情報を記載しておきます。
name := "sandbox"
version := "1.0"
scalaVersion := "2.10.4"
project/build.properties
に sbt の情報を記載しておきます。
sbt.version=0.13.5
ソースは src/main/(java|scala)
に置きます。src/main/scala/Sandbox.scala
を作成してみます。
object Sandbox {
def main(args:Array[String]) {
println("Hello World")
}
}
プロジェクトディレクトリ直下で sbt
コマンドを実行するとインタラクティブモードでコンソールが立ち上がります。初回起動時は必要なパッケージがダウンロードされます。
% cd /path/to/sbt/project/sandbox
% sbt
...
[info] Done updating.
[info] Set current project to sandbox (in build file:...)
>
run
でコンパイルが行われ main ブロックが実行されます。
> run
[info] Compiling 1 Scala source to ...
[info] Running Sandbox
[success] Total time: ....
Hello World
compile
でコンパイルのみ行われます。先頭に ~
を付けるとファイル更新を検知して、自動でコンパイルしてくれます。
> ~compile
1. Waiting for source changes... (press enter to interrupt)
lib/
sbt
で管理しない jar パッケージは、lib/
に置いておきます。自動で -classpath
を通してくれます。
src/main/resources
データファイル関連は src/main/resources
に置きます。
src/main/resources/sandbox.properties
を読み込む src/main/scala/Sandbox.scala
のサンプルコードです。
import java.io.FileInputStream
import java.util.Properties
import scala.collection.JavaConversions._
object Sandbox {
def main(args:Array[String]) {
val prop = new Properties()
prop.load(getClass().getResourceAsStream("/sandbox.properties"))
prop.stringPropertyNames().foreach { key =>
println(prop.getProperty(key))
}
}
}