sbtでScala+Android
以前紹介したScala+Androidのスライドにあったsbt+Androidを試してみたけど、これは良い!
セットアップは簡単だし、その上一度セットアップしてしまえば、あとは1コマンドでsbt+Androidなプロジェクトが作れてしまう。
ところでsbtって?
sbt(simple-build-tool)はScala製のビルドツール。Scalaは当然のことながらJavaのビルドにも対応している。
プラグインによる機能拡張にも対応していて、今回はその機能拡張の1つであるAndroid-Pluginを使用する。
sbtについてはここらへんを見れば概要がわかるはず。
http://blog.8-p.info/2010/4-sbt-scala
http://d.hatena.ne.jp/yojik/20100328/1269770903
sbtセットアップ
http://code.google.com/p/simple-build-tool/wiki/Setup ここにある通りやれば問題ない。
- パスの通ったディレクトリにsbt-launch.jarをコピーする
- 同じディレクトリにsbtというファイルを作る。中身はこう
java -Xmx512M -jar `dirname $0`/sbt-launch.jar "$@"
- sbtに実行属性をつけておく
$ chmod u+x ./sbt
sbt-androidセットアップ
以下のコマンドでOK
$ git clone http://github.com/jberkel/android-plugin.git $ cd sbt-android $ sbt publish-local
追記(2010/07/19):上記セットアップは不要だった。下にあるcreate_projectさえあればsbt-android-plugin.jarは勝手にダウンロードしてきてくれる。
あとはandroidプロジェクト作成スクリプトcreate_projectをパスの通ったディレクトリにダウンロードして実行属性をつけておく。
androidプロジェクトの作成とビルド
冒頭でも書いたとおりプロジェクトの雛形は1コマンドで作成できてしまう。例えば以下の通り。
$ create_project HelloAndroid org.papamitra.helloandroid --platform android-2.1 --scala-version 2.8.0.RC7 --activity HelloAndroid
作成されるディレクトリの構成はこんな感じ。
$ tree -n HelloAndroid HelloAndroid/ ├── project │ ├── build │ │ └── HelloAndroid.scala │ ├── build.properties │ └── plugins │ └── Plugins.scala ├── src │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── assets │ │ ├── java │ │ ├── res │ │ │ ├── drawable │ │ │ │ └── app_icon.png │ │ │ ├── layout │ │ │ ├── values │ │ │ │ └── strings.xml │ │ │ └── xml │ │ └── scala │ │ └── Activity.scala │ └── test │ └── scala │ └── Specs.scala └── tests └── src └── main ├── AndroidManifest.xml ├── assets ├── res └── scala └── UnitTests.scala
sbtを実行すると、scalaやproguardなんかを勝手にダウンロードして環境を構築してくれる。
$ cd HelloAndroid $ sbt
あとはsbtのプロンプトから
> compile
でコンパイル。
インストールは
> install-emulator > install-device
上がエミュレータ用で下が実機用。