連載
» 2013年04月11日 18時00分 UPDATE

Scala+Play 2.0でWebアプリ開発入門(5):Play 2.1にアップグレードしてコントローラを使いこなす (1/3)

2.0からScalaに対応したWebアプリ開発の人気軽量フレームワーク「Play」について解説し、Webアプリの作り方を紹介する入門連載。今回は、Play 2.0から2.1への移行方法やパラメータのバインド、リバースルーティング、セッション、フラッシュスコープの使い方などを解説します。

[中村修太,クラスメソッド]

 前回の記事「Playコントローラ/Action/HTTP Routerの基本的な使い方」では、コントローラの基本的な使用方法について紹介しました。

 今回はまず、新しくリリースされたPlay 2.1についての情報と移行方法を紹介します。また、前回紹介できなかった、コントローラ使用方法の続編についても解説します。

Play 2.1にアップグレードしよう

 前回記事の冒頭でPlay 2.1がリリースされたことをお伝えしました。いままではPlay 2.0を使用してきましたが、これを機にPlay 2.1にアップグレードしましょう。この章ではPlay 2.1での環境構築方法と、Play 2.0アプリのマイグレーション方法を紹介します。

Play 2.1の主な変更点について

 Play 2.1では、バグフィックスと機能追加が行われました。その中で、ランタイムAPIをScala 2.10への移行したことが一番大きい変更だと思います。

 また、Playが持つJDBCやAnorm(データストアアクセス用ライブラリ)などのコンポーネントが、sub-projectsとして分割されました。あとはJSON用APIの変更も結構大きいですね。

 Play 2.1の変更点については公式ドキュメントを確認してください。

セットアップ時の注意

 Play 2.1をインストールして開発環境を設定しましょう。ですが、その前に1つ注意点があります。Play 2.1はScala 2.10で動作しますが、いままでの連載で使用してきたScala IDE fro EclipseはScala 2.10に対応していません。今後の本連載で出てくるサンプルをEclipse上で動かしたい場合、この後の手順で説明するようにScala IDEも更新する必要があります。2.10用のScala IDEと2.9x用Scala IDEは、同一のEclipseにインストールできないので、Play 2.0+Eclipseの環境がまだ必要な人は、別のEclipseを使用するようにしてください。

Play 2.1をインストール

 Play 2.0をインストールしたときと同じように、公式のダウンロードページからPlay 2.1系の最新版をダウンロードします(2013年3月30日記事執筆時での最新版は2.1)。

 ダウンロードしたzipファイルを解凍し、環境変数PATHへ追加しておきましょう。

補足 Homebrewを使用してPlay 2.0をインストールしていた場合

 もし、Homebrew(Mac用のパッケージ管理システム)を使用してPlay 2.0をインストールしていた場合、2.1への更新は非常に簡単に行えます。

 下記のようにupgradeコマンドを使用してPlay frameworkを更新してください。

% brew update
% brew upgrade play

Scala IDE for Eclipse(Scala 2.10対応)をインストール

※もしEclipseを使用せず、テキストエディタでPlayのコードを記述するのであれば、この手順は必要ありません。

 次に、Scala 2.10用のScala IDE for Eclipse(2.1 M3)をインストールしましょう。現状でScala IDE for Eclipseのバージョン2.0.2以前のプラグインをインストールしている場合、アンインストールしておいてください。

 その後、記事「EclipseでScalaプログラミングを始めるための基礎知識」の「EclipseプラグインのScala-IDEを使うには」にある手順と同じようにScala IDE for Eclipseのインストールを行います。

 ただし、メニューから[Help]→[Install New Software...]を選択して、[Upate Site]を指定する際のロケーションは下記のいずれかにしてください。

  • Eclipse 3.7用
    http://download.scala-ide.org/sdk/e37/scala210/dev/site/
  • Eclipse 3.8/4.2用
    http://download.scala-ide.org/sdk/e38/scala210/dev/site/

 プラグインをインストール完了後、Eclipseを再起動すれば、開発環境の準備は完了です。

Play 2.0で作成したアプリをPlay 2.1へマイグレーションする

 Play 2.0で作成していたアプリケーションは、そのままではPlay 2.1では動作しません。前回までに作成したgyroアプリケーションを、Play 2.1で動くようにしてみましょう。

 公式サイトにマイグレーションガイドがあるので、そこを参考にgyroアプリケーションを移行してみましょう。Play 2.0からPlay 2.1へ移行するには、設定ファイルをいくつか変更すれば簡単に移行できます。

 まずは、「gyro/project」ディレクトリにある、「plugins.sbt」を修正します。使用するsbtプラグインのバージョンを変更しましょう。

addSbtPlugin("play" % "sbt-plugin" % "2.1.0")

 そして、Build.scalaファイルの修正も行います。importするパッケージと、main変数の作成個所を変更します。引数も以前と微妙に変わってますね。

import play.Project._
import sbt._
import Keys._
import PlayProject._
object ApplicationBuild extends Build {
    val appName         = "gyro"
    val appVersion      = "1.0-SNAPSHOT"
    val appDependencies = Seq(
      // Add your project dependencies here,
    )
    val main = play.Project(appName, appVersion, appDependencies).settings(
      // Add your own project settings here      
    )
}

 最後にbuild.propertiesを変更しましょう。sbtのバージョンを修正します。

sbt.version=0.12.2

 ファイルの修正が完了したら、「clean」コマンドで余計なファイルを削除し、再起動しましょう。

% play clean
% play run

 起動が成功したら、Eclipseプロジェクトの更新を行います。Playコンソールを起動し、Eclipseプロジェクト化コマンドを実行しましょう。プロジェクトのEclipse化は、以前「eclipsify」というコマンド名でしたが、Play 2.1からは「eclipse」というコマンド名に変わっています。

#Playコンソール
[gyro] $ eclipse with-source=true

 もしこれでうまく動かない場合、Play 2.1で新規にアプリケーションを作成し、ソースファイルのコピーをしてください。

       1|2|3 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。