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も準備完了です。
なお、MavenをEclipseから操作したい場合は、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に放り込んだら、完成。
ここから少しずつアプリらしきものを作っていきたいと思います。