2011年6月18日土曜日

Play framework で Scala を 試してみる

Scala Play




Typesafe.comのページを見ていたところ、右下に、

for Play


の、アイコン&リンクがあるのに気づき、クリックしたところ、前述のscala.playframework.orgの Play framework Scala ページにたどり着きました。
なんだか面白そうなので、試してみることにしました。


  1. バイナリダウンロード
    http://www.playframework.org/downloadより、Play frameworkバイナリをダウンロードします。

    Play download


  2. ダウンロードファイル解凍

    $ unzip Downloads/play-1.2.1.zip
    Archive: Downloads/play-1.2.1.zip
    Play! 1.2.1
    (省略)

  3. リンク作成

    $ ln -s play-1.2.1 play-latest


  4. 環境変数PATHに追加
    以下の様なものを.bashrcに追加し、反映させます。

    $ cat ~/.bashrc
    export PLAY_HOME=${HOME}/play-latest
    export PATH=${PATH}:${PLAY_HOME}
    $ . ~/.bashrc


  5. テスト

    $ play -version
    ~ _ _
    ~ _ __ | | __ _ _ _| |
    ~ | '_ \| |/ _' | || |_|
    ~ | __/|_|\____|\__ (_)
    ~ |_| |__/
    ~
    ~ play! 1.2.1, http://www.playframework.org
    ~
    ~ Usage: play cmd [app_path] [--options]
    ~
    ~ with, new Create a new application
    ~ run Run the application in the current shell
    ~ help Show play help
    ~
    ~ Invalid command: -version
    ~

    問題無し。

  6. play scalaインストール

    $ play install scala
    ~ _ _
    ~ _ __ | | __ _ _ _| |
    ~ | '_ \| |/ _' | || |_|
    ~ | __/|_|\____|\__ (_)
    ~ |_| |__/
    ~
    ~ play! 1.2.1, http://www.playframework.org
    ~
    ~ Will install scala-0.9
    ~ This module is compatible with: 1.2
    ~ Do you want to install this version (y/n)? y
    ~ Installing module scala-0.9...
    ~
    ~ Fetching http://www.playframework.org/modules/scala-0.9.zip
    ~ [--------------------------100%-------------------------] 28983.6 KiB/s
    ~ Unzipping...
    ~
    ~ Module scala-0.9 is installed!
    ~ You can now use it by adding it to the dependencies.yml file:
    ~
    ~ require:
    ~ play -> scala 0.9
    ~


  7. サンプルアプリ作成

    $ play new myScalaWebapp --with scala
    ~ _ _
    ~ _ __ | | __ _ _ _| |
    ~ | '_ \| |/ _' | || |_|
    ~ | __/|_|\____|\__ (_)
    ~ |_| |__/
    ~
    ~ play! 1.2.1, http://www.playframework.org
    ~
    ~ The new application will be created in /Users/igawa/src/myScalaWebapp
    ~ What is the application name? [myScalaWebapp]
    ~
    ~ Resolving dependencies using /Users/igawa/src/myScalaWebapp/conf/dependencies.yml,
    ~
    ~ play->scala 0.9 (from playLocalModules)
    ~
    ~ Some dependencies have been evicted,
    ~
    ~ play 1.2 is overriden by play 1.2.1
    ~
    ~ Installing resolved dependencies,
    ~
    ~ modules/scala-0.9 -> /Users/igawa/play-1.2.1/modules/scala-0.9
    ~
    ~ Done!
    ~
    ~ OK, the application is created.
    ~ Start it with : play run myScalaWebapp
    ~ Have fun!
    ~
    $ find myScalaWebapp -type f
    myScalaWebapp/app/controllers.scala
    myScalaWebapp/app/views/Application/index.html
    myScalaWebapp/app/views/errors/404.html
    myScalaWebapp/app/views/errors/500.html
    myScalaWebapp/app/views/main.html
    myScalaWebapp/conf/application.conf
    myScalaWebapp/conf/dependencies.yml
    myScalaWebapp/conf/messages
    myScalaWebapp/conf/routes
    myScalaWebapp/modules/scala-0.9
    myScalaWebapp/public/images/favicon.png
    myScalaWebapp/public/javascripts/jquery-1.5.2.min.js
    myScalaWebapp/public/stylesheets/main.css
    myScalaWebapp/test/Application.test.html
    myScalaWebapp/test/data.yml
    myScalaWebapp/test/Tests.scala


  8. 実行

    $ cd myScalaWebapp/
    $ play run
    ~ _ _
    ~ _ __ | | __ _ _ _| |
    ~ | '_ \| |/ _' | || |_|
    ~ | __/|_|\____|\__ (_)
    ~ |_| |__/
    ~
    ~ play! 1.2.1, http://www.playframework.org
    ~
    ~ Ctrl+C to stop
    ~
    Listening for transport dt_socket at address: 8000
    04:57:23,101 INFO ~ Starting /Users/igawa/src/myScalaWebapp
    04:57:23,107 INFO ~ Module scala is available (/Users/igawa/play-1.2.1/modules/scala-0.9)
    04:57:25,615 WARN ~ You're running Play! in DEV mode
    04:57:25,720 INFO ~ Listening for HTTP on port 9000 (Waiting a first request to start) ...
    04:57:40,996 INFO ~ Application 'myScalaWebapp' is now started !

    アプリケーションの起動までに結構時間がかかるので注意。
    ブラウザでhttp://localhost:9000/にアクセスし、以下の画面が表示されれば成功。

    Play Scala sample application



  9. 若干モディファイ
    自動的に変更が反映されるのか?を
    http://localhost:9000/@documentation/modules/scala/hello-world
    のチュートリアルを参考に確認してみます。

    Scala Play sample application



    動いた。
    チュートリアルにはまだまだ続きがありますが、続きはまた気が向いたらやります :-)

1 件のコメント:

  1. [...] ブログ更新。ツッコミ歓迎: Play framework で Scala を 試してみる http://b.0r2.info/?p=1534 #Scala # [...]

    返信削除