Mac に Scala および Lift フレームワークを導入

Scala の導入

MacPorts から簡単に行えます。

sudo port install scala

コンパイルは scalac で実行時は scala コマンド。

scalac HelloWorld.scala
scala -classpath . HelloWorld

classpath の後ろに指定するのは作成したクラス名なので注意。また、単に scala だけを入力すると対話型のインタプリタが立ち上がります。

素晴らしいチュートリアルが存在するので Scala についてはそちらも参考にどうぞ。

http://homepage.mac.com/takashi_miyamoto/scala/ScalaTutorial.pdf

Lift の導入

Lift は Scala で記述された Web アプリケーション向けのフレームワークです。動作させるには Maven が必要になるので、まずはそちらをインストールします。

sudo port install maven2

単に maven とせず maven2 をインストールしてください。このまま Maven を利用して Lift のプロジェクトを作成します。コマンドが非常に長いので注意。

mvn archetype:generate -U -DarchetypeGroupId=net.liftweb -DarchetypeArtifactId=lift-archetype-basic -DarchetypeVersion=1.0 -DremoteRepositories=http://Scala-tools.org/repo-releases -DgroupId=demo.helloworld -DartifactId=helloworld -Dversion=1.0

-DgroupID や -DartifactId あたりは適宜書き換える事になると思いますが、後はコピペで問題ないでしょう。古いバージョンの Maven を使ってしまうと、ここで archetype:generate が通らずに、こけてしまいます。

問題なくコマンドが終了すると helloworld というディレクトリが作られるので、該当ディレクトリに移動してサーバを立ち上げてみます。

cd helloworld
mvn jetty:run

jetty というのは簡易的な Web サーバです。Rails ユーザ的には Webrick を思い出しますね。コマンドを入力すると、初回時は各種ダウンロード等で結構な時間がかかりますが、問題なく通ると8080番ポートでサーバが起動しているはずです。

注意:インストーラについて

Lift には公式なインストーラが存在して、以下のアドレスからダウンロードできます。

http://liftweb.net/download.html

しかし、これを実行すると内部に含まれる古いバージョンの Maven への参照設定が行われてしまうらしく、上記コマンドがうまく通りませんでした。もしこちらを入れてしまって問題が発生した場合 ~/.bash_profile からインストーラが行った更新を削除(または、バックアップを作成してくれているのでそちらから復元)してから which mvn で問題の Maven を発見・削除したのち、改めて MacPorts からインストールすればそちらの Maven が参照されるはずです(ただし、一旦ターミナルからログアウトする事)。