![]() |
2012年2月 1日Simple-Build-Toolで始めるScala開発(第3回) |
![]() |
2011年11月24日Simple-Build-Toolで始めるScala開発(第2回) |
![]() |
2011年7月 5日Simple-Build-Toolで始めるScala開発(第1回) |
![]() |
2010年4月12日Javaインストーラ「IzPack」応用編:UserInputPanelのチェックボックスクリック時のvalidator不具合 |
![]() |
2009年12月 8日Javaインストーラ「IzPack」応用編:HTMLLicencePanel中のリンクをクリックしたときに登録済みのブラウザで表示させる |
![]() |
2009年11月27日Javaインストーラ「IzPack」応用編:Codehaus IzPackの紹介 |
![]() |
2009年11月25日マルチプラットフォーム対応のインストーラ「IzPack」でインストーラを作成しよう!(第4回) |
![]() |
2009年11月18日マルチプラットフォーム対応のインストーラ「IzPack」でインストーラを作成しよう!(第3回) |
![]() |
2009年11月17日.NET Framework を理解する。(第3回) |
![]() |
2009年10月28日.NET Framework を理解する(第2回) |
Simple-Build-Toolで始めるScala開発(第1回)
2011年7月 5日
ツール
- Simple-Build-Tool 0.10.0
- 言語:Scala または Java
ターゲット
- Maven に疲れた人
- 継続的インテグレーションに興味がある
- 自動テストに興味がある
- Scala コードを書けるようになりたい
Simple-Build-Tool (sbt) で何ができるのか?
ライブラリ依存関係の管理
Java プログラムを記述する際、Apache Maven という Java 用プロジェクト管理ツールを使用することで Maven リポジトリ上に配置されている pom.xml ファイルから Java ライブラリ間の依存関係を解決することができます。
sbt もその資産を利用して依存関係を解決しています。 Maven では冗長な XML 形式のファイルで依存関係を管理していますが、 sbt ではもっとスマートに記述することができます。(これについては次回解説します。)
対話型シェルによるコマンド実行
ソースコードのコンパイル、テスト等のコマンドを対話型シェルから実行できます。 また、設定ファイルも Scala コードで記述できるので、自分で好きなコマンドを定義できます。 また、ファイル変更検知によるコマンド実行もできるので、継続的なビルドやテストを行うことができます。
sbt は Scala 専用ビルドツールとして解説されることが多いですが、 Java ビルドツールとして使用できます。 Scala と Java コードの混ざっているプロジェクトであっても使用することができます。 ぜひこの機会に sbt を試してみましょう。
sbt を試してみよう
ダウンロード
2011/07/01 現在の sbt の最新バージョンは0.10.0です。
以下の URL からダウンロードします。
http://repo.typesafe.com/typesafe/ivy-releases/org.scala-tools.sbt/sbt-launch/0.10.0/sbt-launch.jar
プロジェクトディレクトリの作成
プロジェクト用のディレクトリを作成します。
ここでは ~/prog/sbtfirst というディレクトリを作成しました。
(以下、プロジェクトディレクトリと呼ぶことにします。)
プロジェクトディレクトリの構成
プロジェクトディレクトリに以下の図の構成となるようディレクトリを作成します。
.
├── bin
└── src
├── main
│ └── scala
└── test
└── scala
先ほどダウンロードした sbt-launch.jar はプロジェクトディレクトリ内の bin/ に移動させます。
sbt-launch.jar 起動用のスクリプトを用意
Windows 環境でもUnix 環境でも sbt を実行可能にするため、プロジェクトディレクトリ内に以下のファイルを用意します。
Unix 用 sbt 起動スクリプト
bin/sbt#!/bin/sh exec java -XX:MaxPermSize=256m -Xmx512M -Dfile.encoding=UTF-8 -jar `dirname $0`/sbt-launch.jar "$@"
また、スクリプトを実行可能にします。
Windows 用 sbt 起動スクリプト
bin/sbt.batset SCRIPT_DIR=%~dp0 java -XX:MaxPermSize=256m -Xmx512M -jar "%SCRIPT_DIR%sbt-launch.jar" %*
ここまでの流れで、プロジェクトディレクトリ構成は以下のようになります。
.
├── bin
│ ├── sbt
│ ├── sbt-launch.jar
│ └── sbt.bat
└── src
├── main
│ └── scala
└── test
└── scala
sbt の実行
ターミナル(Windows ならコマンドプロンプト、Unix ならシェル)を起動し、プロジェクトディレクトリに移動します。
プロジェクトディレクトリで下記のコマンドを実行します。
Unix の場合
Windows の場合
コマンドを実行すると、Scala のダウンロード等を自動的に行った後、対話的に文字が入力できるようになったと思います。
これで sbt での開発ができるようになりました。
実際に sbt で開発をしてみよう
試しに先程起動した sbt で run とコマンドを打ってみましょう。
ソースファイルが無いため、"No main class detected."というメッセージが表示された思います。
(sbt を終了したい場合は exit コマンドで sbt を終了できます。)
ソースコードを書こう
以下の場所に Scala のソースファイルを作成します。
src/main/scala/HelloWorld.scala
object HelloWorld {
def main(args: Array[String]) {
println("Hello Scala World!")
}
}
sbt を起動し、run コマンドを実行してみましょう。
"Hello Scala World!" が表示されたことと思います。
継続的に実行してみよう
sbt はソースファイルの変更を検知し、コマンドを自動的に実行する機能があります。
コマンド名の前に ~(チルダ) を付けることで継続的に実行できるようになります。
このコマンドを実行した状態で、先程のソースファイルを以下のように変更してみましょう。
src/main/scala/HelloWorld.scala
object HelloWorld {
def main(args: Array[String]) {
println("Hello SBT World!")
}
}
この変更したコードを保存すると、自動的に run コマンドが実行されて "Hello SBT World!" が表示されたことと思います。
この機能はソースコードを変更するたびにいちいちコンパイルして実行する手間が省けたり、自動的にテストを実行するといった
ことを可能にします。この機能は非常に開発者を楽にする仕掛けとなっていて、これだけでも sbt を使用する価値があるといってもいいでしょう。
頻繁に使用するコマンド一覧
頻繁に使用するコマンドを以下にまとめます。
| コマンド | 処理内容 |
|---|---|
| compile | ソースコードのコンパイル |
| run | ソースコードの実行 |
| tes | テスト実行 |
| test-quick | テスト実行(変更されたファイルのみ) |
| test-only | テスト実行(引数で与えたクラスのみ) |
| console | ScalaのREPLを起動 |
| doc | ScalaDoc生成 |
| clean | 成果物の削除 |
| exit | sbtの終了 |
表:頻繁に使用するコマンド一覧
まとめ
ここでは以下のことを解説しました
- Simple-Build-Tool についての説明
- sbt 上での簡単な Scala コードのコンパイルと実行方法
次回は、依存関係の解決などの基本的な設定方法について解説します。

















