さほど入門ではない。
- TypeSafe社でリアクティブ関連で商用プラットフォームを作ってる
これを読めばいいです http://www.scala-sbt.org/0.13/docs/ja/Getting-Started.html
- ここに出ていないコマンドで覚えるべきやつは、helpをつかえば
- ターミナルを素早く出すTotalTerminal
- サブライムとiTermで開発してる
こいつを書いておく
sbt.version=0.13.9
マルチプロジェクト/サブプロジェクト(jar)
sbtの概念
buildはsubprojectの集合体-source / libaryDependencies
依存関係で他のプロジェクトを作らないといけないので、lazy val Scala Puzzlersに書いてる
lazy val foo = (project in file("foo"))
- sbtは、mavenとかの系統 プログラミング言語を使ってビルドを定義できる(rakeみたいなやつ)
- その前はantを使っていた
- さらにその前はシェルスクリプトのコマンドだった、といいつつ、makeとかgccとか 環境依存が激しい。
- ネットにつながっていればライブラリを管理できるようになったのがCPAN/maven/rakeなど
- ずっと一生使える
lazy valでないとbazが先に呼べない/Scalaに見えてDSLなのである
lazy val foo = (project in file("foo")), dependsOn(baz)
- コンパイラのsbt
- クロスコンパイルする理由は、数カ月ごとに新しいScalaのバージョンがあって、ライブラリに互換性がなかった
- settingの型
sbtはイミュータブルなつくり
プラグインを書きたい人はDefaults.scalaを読むべし
key.scalaも
dependency orient program
- ~testOnlyとか使ってみるといい