ScalaでWeb開発 (1) Scala, Maven, Liftをインストール 自分用メモ Web系Scala勉強会に参加するので、せめてScalaのWeb開発環境だけでも整えておく。 下調べによると、ScalaのWebフレームワークとしてLift が有名らしい。 Liftの利用には、SBT(Simple Build Tool)か、Mavenとのこと。 今回は将来的なHudson連携を考えてMavenを採用。 まず、何はともあれ、Liftのサンプルを動かすところまでやってみる。
1. Scalaインストール Scalaの公式サイト から適当にStable Releaseのバイナリーを取得。 ダウンロードしたのは、【Unix, Mac OS X, Cygwin】用のscala-2.8.1.final.tgz。 解凍して、適当なパスへ移動して、シンボリックリンク貼って、パス通す。まあ普通に。
1 2 3 4 5 6 7 8 9 tar xvzf scala-2.8.1.final.tgz mv scala-2.8.1.final /usr/local/ ln -s scala-2.8.1.final scala vi ~/.bashrc #-------- export SCALA_HOME=/usr/local/scala export PATH=$PATH:$SCALA_HOME/bin source ~/.bashrc #--------
動作確認
1 2 3 4 5 6 $ scala Welcome to Scala version 2.8.1.final (Java HotSpot(TM) Client VM, Java 1.6.0_20). Type in expressions to have them evaluated. Type :help for more information. scala>
上の通り、ScalaはJava使うので、Javaはインストールしてパス通ってないと駄目。 ちなみに、コンソールから抜けるには:quitと入力。
2. mavenのインストール 仕事で使うことが無かったので、人生初maven。 Apache Mavenの公式サイト から、バイナリーを取得。 やることは、Scalaのインストールと一緒。
1 2 3 4 5 6 7 8 9 tar xvzf apache-maven-2.2.1-bin.tar.gz mv apache-maven-2.2.1 /usr/local ln -s apache-maven-2.2.1 maven vi ~/.bashrc #------------------- export MAVEN_HOME=/usr/local/maven export PATH=$PATH:$MAVEN_HOME/bin source ~/.bashrc #-------------------
動作確認は、以下のコマンドで。
1 2 3 4 5 6 $ mvn -v Apache Maven 2.2.1 (r801777; 2009-08-07 04:16:01+0900) Java version: 1.6.0_20 Java home: /usr/local/jdk1.6.0_20/jre Default locale: ja_JP, platform encoding: UTF-8 OS name: "linux" version: "2.6.33.5-26.1-netbook" arch: "i386" Family: "unix"
3. Liftの導入 Liftの開発元に良さげなwikiがあったので、作業をなぞる。 assemblaのページ 簡単に要点をまとめていくと、mavenで作れるliftのプロジェクトは3種類。
lift-archetype-blank
lift-archetype-basic
lift-archetype-jpa-basic blankとbasicの違いがよくわからん、RDB使うならjpaなのか??まあやってみよう。 えーと、現段階でLiftの最新版が2.1、インストールしたscalaが2.8.1なので、プロジェクト作成は以下のように
1 2 3 4 5 6 7 8 9 mvn archetype:generate \ -DarchetypeGroupId=net.liftweb \ -DarchetypeArtifactId=lift-archetype-basic_2.8.1 \ -DarchetypeVersion=2.1 \ -DarchetypeRepository=http://scala-tools.org/repo-releases \ -DremoteRepositories=http://scala-tools.org/repo-releases \ -DgroupId=com.company \ -DartifactId=lift_test \ -Dversion=1.0
実行してみると・・・
1 2 3 4 [INFO] ------------------------------------------------------------------------ [ERROR] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] The desired archetype does not exist (net.liftweb:lift-archetype-basic_2.8.1:2.1)
ガ━━(゜Д゜;)━━━ン!! scala2.8.1用のliftは、まだ無いのかな? 大人しくサンプル通りに2.8.0にして再実行
1 2 3 4 5 6 7 8 9 mvn archetype:generate \ -DarchetypeGroupId=net.liftweb \ -DarchetypeArtifactId=lift-archetype-basic_2.8.0 \ -DarchetypeVersion=2.1 \ -DarchetypeRepository=http://scala-tools.org/repo-releases \ -DremoteRepositories=http://scala-tools.org/repo-releases \ -DgroupId=com.company \ -DartifactId=lift_test \ -Dversion=1.0
途中で、Yと打てと言われる。 今度は、成功
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Confirm properties configuration: groupId: com.company artifactId: lift_test version: 1.0 package: com.company liftVersion: 2.1 scalaVersion: 2.8.0 Y: y [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL [INFO] ------------------------------------------------------------------------ [INFO] Total time: 18 seconds [INFO] Finished at: Sat Nov 13 23:32:17 JST 2010 [INFO] Final Memory: 11M/27M [INFO] ------------------------------------------------------------------------
これで、lift_testというディレクトリが出来るので、移動してjettyをrun。 ※Mavenの開発時用Webサーバのようです。
1 2 cd lift_test mvn jetty:run
しばし待つ。jettyが起動したらhttp://localhost:8080にアクセス。 下の絵みたいになったら、成功。 [caption id=”attachment_985” align=”aligncenter” width=”300” caption=”lift_testが動くの図”][/caption] これで、とりあえずLiftの導入までは出来ました。 次は、Liftの仕組みをチェックして、どうやって開発を進めていくのかを調べよう。