Play 2.3 がリリースされたので変更点と試し方を説明します

http://www.playframework.com/documentation/2.3.x/Highlights23 https://groups.google.com/forum/#!msg/play-framework/bTvJbeR_zvU/J3reqk6Xo4AJ

変更点は以下の通り

  1. 新規プロジェクトを作るのに今までは play new コマンドを使っていたけれど Typesafe Activator を使うようになった。
  2. asset のコンパイルに sbt-web を利用するようになった(sbt-web については http://slides.pab-tech.net/sbt-web/ を見るとよい) 。
  3. Java8 サポート。Java 6,7 も引き続き使えます。
  4. Play-Java のパフォーマンス向上
  5. Scala 2.11 サポート (2.10 も引き続きサポート)
  6. Anorm の機能追加。SQL Interpolation 使えたりするようになった。
  7. WS の機能追加。
  8. ScalaTemplate の実装が twirl になった。
  9. WebSocket 用の Actor を追加 http://www.playframework.com/documentation/2.3.x/ScalaWebSockets
  10. HTTPS の SSLEngine がカスタマイズできるようになった。
  11. Asset のパフォーマンス向上。
  12. deprecated になっていた古い Result 系の型が削除された。
  13. いろいろバグ直した

以前からバリバリ使ってるよって人的には Result 型の整理がちょっとめんどいかもしれません。あとは WebSocket が Actor で少し楽に書けるようになったのが嬉しいかもしれませんね。Iteratee わけわからんって人も Actor ならまだなんとかなるんじゃないでしょうか。

ライブラリ・プラグイン作者にとってはまず sbt-web が大きくて、asset 系のプラグインを作りたいなら知っておく必要があります。あとは Scala 2.10, 2.11 のクロスビルドになってしまったので、まあ、ビルド頑張りましょう。

Play 初心者の人はプロジェクトの作成は play new ではなく、activator new を使うということだけ抑えておきましょう。古い情報を見て play new を探さないように。また activator のドキュメントを見ると activator ui というコマンドがありますが、activator ui は別に知らなくても良いただの余興みたいなものですのでとにかく気にせずに activator new しましょう。

activator は typesafe のサイトから手に入りますが、林檎教徒であれば homebrew でインストールできます。

$ brew install typesafe-activator

異教徒の方、こちらです。

$ wget http://downloads.typesafe.com/typesafe-activator/1.2.0/typesafe-activator-1.2.0-minimal.zip
$ # いい感じでパスを通す

これで activator コマンドがインストールされるので activator new しましょう。

$ activator new

プロジェクトの名前を打ちます。今回は適当に try-play-23 にしました。

Enter an application name
> try-play-23

Fetching the latest list of templates...


The new application will be created in /Users/toshi/tmp/try-play-23

Browse the list of templates: http://typesafe.com/activator/templates
Enter a template name, or hit tab to see a list

なんかサイト見ろって言ってますが、気にせず tab を押します。

>
Display all 125 possibilities? (y or n)
PlayStartApp
activator-akka-cassandra
activator-akka-scala-guice
activator-akka-spray
activator-akka-tracing
activator-gilt-app

...

なんかテンプレートがいっぱい出てくるんですけど使用するのは play-scala です。

> play-scala
OK, application "try-play-23" is being created using the "play-scala" template.

To run "try-play-23" from the command-line, run:
/Users/toshi/tmp/try-play-23/activator run

To run the test for "try-play-23" from the command-line, run:
/Users/toshi/tmp/try-play-23/activator test

To run the Activator UI for "try-play-23" from the command-line, run:
/Users/toshi/tmp/try-play-23/activator ui

これで try-play-23 プロジェクトができました。activator 使えってうるさいですね。どれどれ。

$ cd try-play-23
$ ls
LICENSE                    conf
README                     logs
activator                  project
activator-launch-1.1.0.jar public
app                        target
build.sbt                  test

プロジェクトの中に activator コマンドと起動用の jar が入っています。2.2 以前は play コマンドを使っていましたが、2.3 からはこの activator コマンドを使うのが流儀のようです。

$ ./activator run

実際 activator は sbt のラッパーなので、あまり必要性を感じない人は rm しちゃって sbt そのまま使えば良いでしょう。

$ rm activator* # 汚物は消毒だ!
$ sbt run

これでもりもりとダウンロードやらコンパイルが始まるので待ちましょう。途中で OutOfMemory とか PermGen なんちゃらとか言われて落ちてもくじけない。

f:id:tototoshi:20140531151458p:plain

ふう、やっと起動した。

感想

  • activator の存在意義は未だにわからない
  • でも play で採用されることで activator の存在がいよいよ知れ渡ってしまったので一応知っておく必要はある
  • sbt にプロジェクトテンプレート作成機能があればいい気がした
  • play new したいがために Play のでかい zip を落としてくる必要がなくなったのは嬉しい