Play 2.3 がリリースされたので変更点と試し方を説明します
http://www.playframework.com/documentation/2.3.x/Highlights23 https://groups.google.com/forum/#!msg/play-framework/bTvJbeR_zvU/J3reqk6Xo4AJ
変更点は以下の通り
- 新規プロジェクトを作るのに今までは play new コマンドを使っていたけれど Typesafe Activator を使うようになった。
- asset のコンパイルに sbt-web を利用するようになった(sbt-web については http://slides.pab-tech.net/sbt-web/ を見るとよい) 。
- Java8 サポート。Java 6,7 も引き続き使えます。
- Play-Java のパフォーマンス向上
- Scala 2.11 サポート (2.10 も引き続きサポート)
- Anorm の機能追加。SQL Interpolation 使えたりするようになった。
- WS の機能追加。
- ScalaTemplate の実装が twirl になった。
- WebSocket 用の Actor を追加 http://www.playframework.com/documentation/2.3.x/ScalaWebSockets
- HTTPS の SSLEngine がカスタマイズできるようになった。
- Asset のパフォーマンス向上。
- deprecated になっていた古い Result 系の型が削除された。
- いろいろバグ直した
以前からバリバリ使ってるよって人的には 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 なんちゃらとか言われて落ちてもくじけない。
ふう、やっと起動した。
感想
- activator の存在意義は未だにわからない
- でも play で採用されることで activator の存在がいよいよ知れ渡ってしまったので一応知っておく必要はある
- sbt にプロジェクトテンプレート作成機能があればいい気がした
- play new したいがために Play のでかい zip を落としてくる必要がなくなったのは嬉しい