HelloLift 2.1
Liftについて調べたことをまとめていきたい。LiftについてはLiftの情報 - @katzchang.contextsも参照のこと。
作る環境
- Lift 2.1-RC3
- Scala 2.8.0
Liftで検索すると1.xの情報が多くあるが、2系とは微妙に異なり、大抵は動かない。あまり時間をかけるべきではなく、公式ドキュメントを参考にするのが一番早い。
ところで、言語やフレームワークやツールなんかの情報を載せるときは、バージョンを明記すべきだと思うんだけどどうよ?
教科書:
http://exploring.liftweb.net/downloads/master.pdf
オンラインのHTML版もあるが、これまた微妙に中身が異なったり、ソースファイルにPタグが混入してたりするので、pdf版を頼りにしていく。
今回は教科書と同一ではあまり面白くないので、Liftのバージョンを2.0ではなく2.1-RC、archetypeもblankではなくbasicを使って進めてみる。
Chapter 1 Welcome to Lift!
適当なディレクトリで、次のコマンドを適当に叩く。
mvn archetype:generate \ -DarchetypeGroupId=net.liftweb \ -DarchetypeArtifactId=lift-archetype-basic_2.8.0 \ -DarchetypeVersion=2.1-RC3 \ -DarchetypeRepository=http://scala-tools.org/repo-releases \ -DgroupId=hello.lift \ -DartifactId=hellolift \ -Dversion=1.0-SNAPSHOT cd hellolift mvn jetty:run
すでにMaven環境を用意している場合、scala-toolsで管理するライブラリと一致しせず、ハッシュコードが場合がある。その際はローカルリポジトリの設定を一時的に変えるか、乱暴にはローカルレポジトリを一旦削除して、
mvn clean mvn jetty:run
すると大丈夫。
ブラウザで http://localhost:8080/ を開くと、シンプルだがそれなりのページがみえるはず。
lift-archetype-basic_2.8.0の初期状態では、staticなコンテンツの例とアカウント管理までがセットになっている。データベースはH2を使っている。当然、JDBCに対応しているものは概ね、pom.xmlのdependencyを設定してプロパティを若干追記することで使える。変更方法など詳細はそのうちに。
他のバージョン(2.0とか2.2とか)用など、他のarchetypeを使いたい場合は http://scala-tools.org/repo-releases から適当に選んで指定する。Explore Liftが2.0を対象としていて、2.1とは(たぶん)大きな違いはなく、かつ2.2からTemplateの記法が若干変わったらしいので、とりあえず今回は2.1-RC3を選ぶことにした。jpa対応のarchetypeもあるらしいが、個人的にjpaをあまりよく知らないので選んでいない。だれか教えて。