読者です 読者をやめる 読者になる 読者になる

望月いちろうのREADME.md

書き溜めておいた技術記事や旅行記のバックアップです。

Scalaの開発環境 基本編 - SBT入門

sbtとは

Scalaのプロジェクト管理ツールのこと、Simple Build Tool(シンプルなビルドツール)の略ですが、全然シンプルではありません。

sbtでできること

パッケージの依存関係の自動構築・インストール、パッケージングを行う。単純にプロジェクトを起動するだけでなく、jarファイルとしてパッケージングして配布することも可能です。

またsbtにはアドオンを追加して機能を拡張することも可能です。

インストール

Macであればbrewで一発です。

brew install sbt

Linux

apt-getまたはyumでインストール可能

Debian(Ubuntuなど)

echo "deb https://dl.bintray.com/sbt/debian  | sudo tee -a /etc/apt/sources.list.d/sbt.list
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2EE0EA64E40A89B84B2DF73499E82A75642AC823
sudo apt-get update
sudo apt-get install sbt

RedHat(CentOSなど)

curl https://bintray.com/sbt/rpm/rpm | sudo tee /etc/yum.repos.d/bintray-sbt-rpm.repo
sudo yum install sbt

テストプロジェクトを作成する。 最初にHello Worldを表示するテストプロジェクトを開発してみましょう。 適当な作業をディレクトリに移動してプロジェクトのベースディレクトリを作成します。 ベースディレクトリに最低限設置しなければいけないのはbuild.sbtファイルです。

mkdir hello
touch build.sb

適当なテキストエディタまたはvimを利用してbuild.sbtに以下の内容を書き込みます。

name := "hello-world"
version := "0.0.1"
scalaVersion := "2.11.7"

上から順番にプロジェクトの名前、プロジェクトのバージョン、そしてScalaのバージョンになります。非常に便利なことにSBTは指定したScalaが利用できない場合自動的にインストールを実行します。したがって、Scalaがインストールされているか、どうかを気にする必要はありません。 一番重要なのはソースコードを配置するディレクトリ構成です。 scalaのソースコードはベースディレクトリ 以下のディレクトリに配置します。階層が深いですが、順番に作成していけば大丈夫でしょう。 src/main/scala そして、main.scala(この名前は自由で構いません)を作成して以下のように編集します。

object hello {
   def main(args:Array[String]) : Unit  = { 
      println("Hello World")
   }
}

内容は非常に単純でHello Worldを出力するだけの話です。このファイルを保存してベースディレクトリに移動しましょう。 ここが一番肝心な箇所です。ソースコードをコンパイルして実行用バイトコードを作成します。

 sbt compile

ここが問題なく実行できたら、いよいよソースを実行できます。

sbt run

すると

"Hello World"

とHello Worldを実行することができました。

jarファイルの作成

sbtで作成したバイトコードはjarファイルとして配布・再利用することが可能です。これは簡単で

sbt package

を実行するだけです。するとtarget/scala-2.11(sbt compileの時点で自動的に作成される)にhello-world-0.0.1.jarが作成されます。これを実行すると

java -jar hello-world-0.0.1.jar

同じ結果になります。

"Hello World"

続く