HelloLift 2.1

Liftについて調べたことをまとめていきたい。LiftについてはLiftの情報 - @katzchang.contextsも参照のこと。

事前に用意するもの

インストールの詳細は他のサイトの解説を参照。執筆時点で Maven 2.2.1 / Java 1.6.0_22を使っている。

作る環境

  • 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.xmldependencyを設定してプロパティを若干追記することで使える。変更方法など詳細はそのうちに。

他のバージョン(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をあまりよく知らないので選んでいない。だれか教えて。