ScalaでWeb開発 (1) Scala, Maven, Liftをインストール

2010-11-14

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が動くの図”]![lift_test](http://cdn.hanhans.net/images/2010/11/Screenshot-com.companylift _test1.0-Chromium-e1289661396939-300x155.png)[/caption] これで、とりあえずLiftの導入までは出来ました。 次は、Liftの仕組みをチェックして、どうやって開発を進めていくのかを調べよう。