Scalaの開発環境入門
sbt を使おう
Java 経験者の方はとりあえずは慣れている maven ではじめてみるでもよいとは思います。
しかし、Scala では sbt がビルドだけでなく開発に関するデファクトな環境に成りつつあるので、ぜひ sbt を使ってみることをお勧めします。
SBT
https://github.com/harrah/xsbt/
始める sbt
http://eed3si9n.github.com/sbt-getting-started-guide-ja/
sbt
MacOS X の方は Homebrew でセットアップできます。
brew install sbt
Windows の場合は sbt-launch.jar をダウンロードして以下のような bat ファイルを作ってください。
@echo off set SCRIPT_DIR=%~dp0 java -Xmx512M -jar "%SCRIPT_DIR%sbt-launch.jar" %*
conscript
conscript は GitHub 上でホストされていて、かつ conscript に対応しているScala のソフトウェアを簡単に install や update できる仕組みです。
https://github.com/n8han/conscript
先ほどやった sbt の setup を conscript で済ませることもできます。
conscript では ~/bin にコマンドのスクリプトが置かれるので、このディレクトリにパスを通しておきます。
# cs コマンドが使えるようになる curl https://raw.github.com/n8han/conscript/master/setup.sh | sh cs harrah/xsbt sbt # 起動できるはず
conscript で install された sbt は以下のようになっています。
#!/bin/sh java $CONSCRIPT_OPTS -Xmx1G -jar /Users/seratch/.conscript/sbt-launch.jar @/Users/seratch/.conscript/harrah/xsbt/sbt/launchconfig "$@"
プロジェクトのテンプレートをダウンロードするための giter8 も conscript でセットアップできます。
cs n8han/giter8
Scalaでスクリプトを書く、REPLを使う
sbt のセットアップ済であればただこれだけです。REPL が立ち上がります。
sbt console
カレントディレクトリにscalaファイルがあるとコンパイルしようとするので注意してください。
scala スクリプトをつくって scala コマンドで実行したり scalac でコンパイルしたい場合、MacOS X なら Homebrew でダウンロードするだけです。
brew install scala
MacOS X でない場合は Scalaの公式サイトからzipやtarballをダウンロードしてきて解凍します。解凍したディレクトリのbin配下にscalaコマンドなどがあるので、ここにPATHを通します。
wget http://www.scala-lang.org/downloads/distrib/files/scala-2.9.1.final.zip unzip scala-2.9.1.final.zip # binにPATHを通します # SCALA_HOME=/usr/lib/scala/scala-2.9.1.final # PATH=${PATH}:${SCALA_HOME}/bin
これでREPLの起動やScalaスクリプトの実行ができるようになりました。
[user@host scala]$ scala Welcome to Scala version 2.9.1.final (Java HotSpot(TM) 64-Bit Server VM, Java 1.6.0_29). Type in expressions to have them evaluated. Type :help for more information. scala> println("Hello World!") Hello World! scala> :q [user@host scala]$
mavenを使う
maven でプロジェクト設定やビルド、テストなど一通り行うこともできます。
Scala をやるなら sbt を使った方が良いですが maven を普段使っている人がとりあえず Scala を始めてみる分には環境設定が不要なので手軽かもしれません。
以下の archetype で作ったプロジェクトは maven で Scala の compile や test がそのまま実行できるサンプルになっています。ただし Scala のバージョンは 2.8.0 と相当古いです。
mvn archetype:generate # 516: remote -> scala-archetype-simple (The maven-scala-plugin is used for compiling/testing/running/documenting scala code in maven.) # scala-archetype-simple を試します # この記事投稿時点での最新は 1.4 で Scala のバージョンは 2.8.0 になります # scala-2.8.1 にするには specs のバージョンを 1.6.8 にすればOKです cd scala-sample mvn compile # App.scalaがコンパイルできます mvn test # JUnit、ScalaTest、specs のテストが実行できることが確認できます # ただし、これらは JUnitRunner で動かしているので、それぞれアノテーション指定が必要になります mvn scala:console # プロジェクトの classpath を解決し mvn compile を実行済の状態で scala の REPL を立ち上げることができます
IntelliJ IDEA を使う
現状 IDE での開発は IntelliJ IDEA の Scala プラグインを利用するのが最も現実的な選択肢と思われます。Community Edition であれば無償で利用することができます。
IntelliJ IDEA :: Best Java IDE to do more high-quality code in less time
インストール完了後、Windowsの場合はFile>Settings*1>(IDE Settings)>Pluginsでavailableタブにしてから右上の検索窓で「scala」を検索、最新になっていないものを選択して、左上のFDから矢印が出ている感じのアイコンをクリックすると最新版に更新できます。
なお maven でプロジェクトをセットアップする場合は「mvn idea:idea」ではなく IntelliJ の画面上で pom.xml を右クリックでセットアップを実行する方がよいでしょう。
Eclipse の Scala IDE を使う
Eclipse の Scala IDE というプラグインを使うとエディタ上でハイライトやフォーマッタなどの機能を使うことができます。
http://scala-ide.org/download/current.html
2012/2 時点では Helios で 2.9.1 対応を使うのが一番良さそうです。
Vim で読み書きする
Scala をダウンロードすると ${SCALA_HOME}/misc/scala-tool-support/vim 配下に vim 設定が置いてあります。これを自分の vim 設定に放り込めば、シンタックスハイライトが有効になります。
fsc(Fast Scala Compiler) を使う
fsc は Scala に標準で付属するサーバ方式のコンパイラです。初回起動時にコンパイルに必要な情報をメモリ上にキャッシュして常駐することで、次回以降のコンパイル速度を向上しています。
fsc -verbose *.scala -d output # 初回実行時にコンパイラサーバが起動します # 2回目以降、クラスのロードがスキップされるのでコンパイルが速くなります fsc -reset # キャッシュ情報をクリアします(再ロードはしない) fsc -shutdown # サーバをシャットダウンします
より詳細な情報はマニュアルを参照下さい。
IntelliJ IDEA で fsc を使う
IntelliJ IDEA の Scala プラグインは fsc によるコンパイルに対応しています。以下の通りに設定を行えば fsc でコンパイルがされるようになり、コンパイルのストレスを軽減できます。
- 「Use fsc(fast scalac)」にチェック
まず、File>Settings*2>(Project Settings)>Compiler>Scala Compiler で「Use fsc(fast scalac)」にチェックを入れます。
- Run>Edit Configurations で fsc を作成
次に Run>Edit Configurations で左上の「+」のアイコンをクリックし「Scala Compilation Server」を選択、作られた fsc は「Name:Unnamed」となっているので適当に「fsc」などに変更します。
- fsc を起動
設定が終わったらRunタブのすぐ下にある実行プルダウンで「fsc」が選択可能になるので、右にある三角の実行ボタンでfscを起動します。なお、この起動手順は毎回手動です。IntelliJの再起動時やfscが異常終了するようになった場合の再起動などは手動で行う必要があります。
JRebel を使う
JRebel を使うといわゆる Hot reloading(Hot deploy)ができるようになるので Web アプリなどの開発がスムーズになります。
JRebel は Scala の開発者は無償で利用することができます。以下のページの右エリアにある「Get JRebel for free」というところから「Scala Developers」として申請すると、ライセンスがメールで送られてきます。「jrebel.lic」をJRebelのインストールディレクトリ(jrebel.jarと同じディレクトリ)に配置すればOKです。
http://sales.zeroturnaround.com/
JRebelをインストールしたら、JAVA_OPTSやMAVEN_OPTSに「-javaagent:/usr/jrebel/home/jrebel.jar」のようにjrebel.jarのパスを指定します。また、IntelliJ IDEAから使う場合はJRebelプラグインをインストールしてSettingsからJRebelのインストール先のパス設定などを行います。