Scala入門記003 初めてのsbt
実は最近Scala結構やってます。
個人的にもScalaを積極的に使っていくので疑問点を潰していく上でも入門記を続けようと思います。
Scala入門記の目次はこちらです。
前回も紹介しましたが、Scalaでビルドする際はsbtが標準的なツールです。
これをmavenと同等以上に使えるようになりたいところです。
まずは使いはじめるためには公式ドキュメントの和訳「始める sbt - ようこそ」を適宜読んでいくのが良さそうです。
準備
今日は軽く最初から試してみました。
まずは適当なフォルダにビルドの定義build.sbtを作ります。
name := "scala-ample-001" version := "1.0" scalaVersion := "2.10.3"
プロジェクト名とそのバージョン、使うscalaのバージョンを指定しただけです。
そしてソースコードを用意します。
ファイルはsrc/main/scala/Hello.scalaにしました。
object Hello { def main(args: Array[String]) { println("Hello!") } }
実行
実行は前回と同じで以下のコマンドで「Hello!」が表示されます。
sbt run
パッケージング
jarを作るにはpackageです。
sbt package
これで./target/scala-2.10/scala-ample-001_2.10-1.0.jarができます。
scala ./target/scala-2.10/scala-ample-001_2.10-1.0.jar
で生成したjarのHello#mainが実行されます。
ちゃんとjarファイルにはマニフェストファイルが入っています。
sbt clean
でtargetフォルダがなくなります。
project/targetはなくならないようです。
実験
scalaVersion := "2.10.3"
を
scalaVersion := "2.10.2"
に変えてもrunできました。
scalaVersion := "2.10"
に変えるとエラーになりました。
scalaVersion := "2.10.5"
に変えるてもエラーになりました。
ログを見ていると、コンパイラをダウンロードしてコンパイルしてくれてるようでした。
なので端末に入っていないscalaのバージョンを指定してもビルドできるので便利そうです。
ちなみに2.10.5はリリースされていないのでエラーになったのですね。
最後にscalaVersionを消してしまった場合もコンパイルでき、この際はおそらくシステムのデフォルトが使われるのでしょう。
git
今回のソースをgit管理をする際は.gitignoreは以下としました。
target
今回のサンプルからGitHub管理していきます。
https://github.com/thachi/scala-sample-001