argius note

プログラミング関連

Scala事始めにLiftを触ってみる...当然Mavenも (1)

前々からScalaを使えるようになろう、と考えていました。ところが、忙しかったり、モチベーションが上がらなかったり、歳をとったりして、はじめるタイミングを逸していました。
で、最近、スマートフォンを手に入れたことにより、外出時でも、より気軽にWebにアクセスできるようになったので、ちょっとずつWikiとかで入門は始めていたところです。


で、そのScalaを始めようと思った切っ掛けとか、そういうわりとどうでもいい個人的な話を書こうと思います。
でも、その前に。


Liftで最初の画面をアプリケーションサーバ上で動かして表示させるまでを、実際に行った手順を書いておきます。その後で、個人的な話を書きます。


ずいぶん前の記事ですが、id:yuroyoroさんの日記が面白かったので、参考にさせていただきました。ただし、バージョンは非常に違いがありますのでご注意。

実際は紆余曲折を経てここまで来ていますが、その辺は後で書きます。

Liftを導入してアプリケーションサーバ上で動かすまで

Maven3.0.3をインストールします。Maven2.2.1以上がインストール済みならそのままでOKです。ダウンロードしたアーカイブを適当なディレクトリに展開してbinにパスを通すだけです。JAVA_HOMEを設定していなかったら、これも設定します。
次に、MavenでLiftをセットアップします。バージョンは適当に新しそうなものを指定しています。途中、"Y:"というプロンプトが出るので、y[ENTER]として続行させます。

※実際は改行なし
> mvn archetype:generate -DarchetypeGroupId=net.liftweb
 -DarchetypeArtifactId=lift-archetype-basic_2.9.1 -DarchetypeVersion=2.4-M4
 -DarchetypeRepository=http://scala-tools.org/repo-releases
 -DremoteRepositories=http://scala-tools.org/repo-releases
 -DgroupId=net.argius -DartifactId=note -Dversion=1.0

初めてMavenを使う場合は、%HOMEPATH%\.m2が新しく作られて、多種多様なライブラリがどんどんダウンロードされます。最初は大量にダウンロードするので時間がかかります。"BUILD SUCCESSFUL"というメッセージが出たら成功です。
これで、ScalaもLiftも準備完了です。


なお、MavenEclipseから操作したい場合は、Eclipseにm2eclipseプラグインを入れて、

> mvn eclipse:eclipse
> mvn -Declipse.workspace="%HOMEPATH%\.m2" eclipse:add-maven-repo

としてからEclipseにインポートします。あとは、Eclipse側でビルドや編集が出来ます。
ビルドは、pom.xmlを右クリックして、"Mavenビルド"を追加し、ゴールにビルドのコマンド(後述の"compile"や"war:war")を入力してOKします。これで、Eclipse上でWARビルドができるようになります。
Scalaのプラグインですが、残念ながら、Eclipse3.7だとScala-IDEが使えないみたいです。他はまだ調べてないです。


コマンドプロンプトに戻り、作成したプロジェクトに入ります(この場合は cd note とします)。POMのある場所でコンパイル、WARビルドを実行します。コンパイルでScalaをコンパイルしてclassファイルを作成。その後、これらのclassファイルとLift一式を含むWARが完成します。WARはtargetディレクトリに作成されます。

> mvn compile
> mvn war:war

WARファイルは"note-1.0.war"となりました。サイズは約22MB!。現noteは2MB弱です。Scalaだけで半分くらいを占めているようです。でも、その恩恵を享受できるのであれば安いものでしょう。きっと。


あとは、私の場合はGlassfishのサーバがあるので、そこのautodeployに放り込んだら、完成。
ここから少しずつアプリらしきものを作っていきたいと思います。