Quick startによるHello world
それでは、Liftの動作環境の構築からHelloWorldの実行までの手順を説明します。
動作環境のインストール
Liftで開発を行うためには、最低限JDK 5以上とMaven 2がインストールされている必要があります。
本稿では、以下のバージョンを利用します。
上記の環境がある場合は、すぐにでもLiftを利用することができますが、Liftのインストーラを利用することでMaven 2のインストールや環境変数の設定を自動で実行することもできます。下記のリンクからご使用のOSに合わせたインストーラをダウンロードして実行するだけです。
LiftはScalaのWebアプリケーションフレームワークですが、必ずしもScalaの実行環境をあらかじめインストールしておく必要はありません。
しかし、コンソールで動作を確認したりするのに便利ですので、Scalaの実行環境も合わせてインストールしておくことをお奨めします。
Scalaのインストールは、以下の公式サイトから最新版をダウンロードして解凍し、解凍されたディレクトリ以下のbinディレクトリを実行パスに設定するだけです。
Liftプロジェクトの作成
では、早速プロジェクトを作成してみましょう。
DOSプロンプトまたはターミナルを起動し、プロジェクトを作成したいディレクトリに移動します。ここではworkディレクトリとします。
cd work
つぎに、mvnコマンドで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
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
"mvn archetype:generate"コマンドは、Maven archetypeというひな形をもとにプロジェクトを作成するコマンドです。Lift用のMave archetypeもいくつか用意されています。ここでは、基本的な機能をあらかじめ含んだプロジェクトである"lift-archetype-basic"を利用します。
そのほかのオプションについては、以下の表を参照してください。
オプション | 説明 |
-DarchetypeGroupId | 元となるArchitypeのGroup Id |
-DarchetypeArtifactId | 元となるArchitypeのArtifactId Id |
-DarchetypeVersion | 元となるArchitypeのバージョン |
-DremoteRepositories | Archtypeを取得する先のリポジトリURL |
-DgroupId | 生成するプロジェクトのGroup Id |
-DartifactId | 生成するプロジェクトのArtifactId Id |
-Dversion | 生成するプロジェクトのバージョン |
コマンドを実行すると、リスト7のように作成するソースコードのパッケージを問い合わせるプロンプトが表示しされます。パッケージ名のデフォルトは"-DgroupId"オプションで指定した値ですので、特に変更する必要がなければそのままエンターキーを押します。
package: demo.helloworld Y: : ← エンターキーを押します
プロジェクトの作成が成功すると、リスト8のようなメッセージが表示され、helloworldディレクトリが作成されているはずです。
[INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL [INFO] ------------------------------------------------------------------------ [INFO] Total time: 15 seconds [INFO] Finished at: Thu Aug 06 17:30:45 JST 2009 [INFO] Final Memory: 12M/80M [INFO] ------------------------------------------------------------------------
こうして作成されたプロジェクトは、Scalaの実行環境や、JettyやH2 Database engineなどとともに、Lift本体と必要とするライブラリがMaven2によりダウンロードされているので、すぐにでも動作させることができるのです。
Liftプロジェクトの構成
作成されたLiftプロジェクトは、リスト9に示すようなファイル/ディレクトリ構成になっています。
helloworld/ |-- pom.xml `-- src |-- main | |-- resources -- リソースファイルを配置 | |-- scala | | |-- bootstrap | | | `-- liftweb | | | `-- Boot.scala -- アプリケーションの設定 | | `-- demo | | `-- helloworld -- アプリケーションのパッケージ | | |-- comet -- comet関連のsnipetを配置 | | |-- lib -- 一般的な依存クラスなどを配置 | | |-- model -- Modelクラスを配置 | | | `-- User.scala | | |-- snippet -- Snippetクラスを配置 | | | `-- HelloWorld.scala | | `-- view -- Viewクラスを配置 | | | `-- webapp -- コンテキストルートディレクトリ | |-- WEB-INF | | `-- web.xml | |-- index.html -- Topページのテンプレート | `-- templates-hidden -- デフォルトのTemplate | `-- default.html `-- test -- テストクラスなどを配置 |-- resources `-- scala |-- LiftConsole.scala |-- RunWebApp.scala `-- demo `-- helloworld `-- AppTest.scala
「src/main/scala」以下が、Scalaのソースコードを配置するディレクトリです。以下、パッケージ名に沿ってサブディレクトリが定義されています。
今回例として作成したプロジェクトのパッケージは、"demo.helloworld"ですので、「src/main/scala/helloworld」以下に、modelやsnippetを配置するサブパッケージが作成されています。
「src/main/webapp」は、warファイルにパッケージングされる際のコンテキストルートディレクトリになります。src/main/webapp以下に、アプリケーションで利用するテンプレートやCSSファイル、JavaScriptファイルなどを配置することになります。
「src/test」以下は、テストクラスを配置するためのディレクトリです。
開発サーバーの起動・動作確認
プロジェクトが作成できたら、さっそくアプリケーションを動かしてみましょう。
「helloworld」ディレクトリに移動し、リスト10にあるとおり"mvn jetty:run"と入力すると、開発サーバーとしてJettyが起動します。
cd helloworld mvn jetty:run
以下のリスト11のようなメッセージが表示されたら開発サーバーの起動は完了です。
[INFO] Started Jetty Server [INFO] Starting scanner at interval of 5 seconds.
では、ブラウザを起動し、"http://localhost:8080/"にアクセスしてみましょう。正常に動作してるならば、以下の画面が表示されます。
画面左に表示されている[Login][Sign Up][Lost Password]などのメニューは、Liftではじめから組み込まれているユーザ管理機能とSiteMapによって自動的に作成されるものです。
[Sign Up]リンクをクリックして、表示されるフォームに入力してユーザを作成してみましょう。
フォームに入力して[Sign Up]ボタンを押すとユーザが作成され、ログインした状態になります。メニューの内容が変化しているのが分かると思います。
ここで登録したユーザーのデータは、H2 Database engineによってファイル上に保存されています。よって、次回開発サーバを起動した際にも保存したデータは利用できます。
これで、Liftはプロジェクトを作成した時点ですぐに動作を確認できることがお分かりいただけたかと思います。