こんにちは、深澤です!
最近、playframeworkを使うことが多いのですが、
バージョンが上がって、「あぁ、変わったな〜」と感じることがあったので今回まとめてみました。
誰かの参考になれたらと思います。
なお、今回はjavaの方で語っていきます!
eclipseコマンドがなくなった!?
はい、最初に気が付いた異常はこれですね。
今まで、playアプリケーションをeclipseのプロジェクトとして読み込む際、
アプリケーションのルートディレクトリで、以下のコマンドを使ってからeclipseにインポートしてました。
$ activator eclipse
このコマンド、外部からプラグインとして持ってこないと使えなくなってしまったんですね。
こんな感じのエラーが出ます。
[error] Not a valid command: eclipse (similar: help, alias)
[error] Not a valid project ID: eclipse
[error] Expected ':' (if selecting a configuration)
[error] Not a valid key: eclipse (similar: deliver, licenses, clean)
[error] eclipse
[error]
projectディレクトリの中にあるplugins.sbtに次のように記述してeclipseコマンドを使えるようにします。
addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.5.0")
これでリロードしてあげると使えるようになります。
モデル関係の設定
正確に言うとebeanの設定もあるんですけどね。
結構焦りました。
今までは(僕の記憶では)build.sbtから追加していたのですが、こちらもプラグインになりました。
eclipseくんと同じようにplugins.sbtに追記してあげてください。
addSbtPlugin("com.typesafe.sbt" % "sbt-play-ebean" % "1.0.0")
設定はこれだけではありません。
次にアプリケーションのルートディレクトリ直下にあるbuild.sbtファイルのroot部分を変更します。
lazy val root = (project in file(".")).enablePlugins(PlayJava,PlayEbean)
さらに、デフォルトのモデルを知らせるために、application.confファイルに次の一行を追記します。
ebean.default = ["models.*"]
あとはevolutionもbuild.sbtに付け加えなければならなくなりました。
libraryDependencies ++= evolutions
インポート先(継承先?)も変わっているので注意が必要です。
import com.avaje.ebean.Model;
モデル関係はがっつり変わったかなと。
セッションのインポート先
sessionを使おうとした時に全然使えなくて焦りました。
インポート先は次のようになっています。
import play.mvc.Http.Session;
これ、前からなんですかね?
以前は、play.api.mvcの下だった気がします。
たぶん、ここの周りは他にも変わったかもしれないのですが、検証が追いついてません・・・。
何かあれば、コメントしていただけるとありがたいです。
僕も、何か見つけ次第、追記していきます。
routeが動的参照になった
今までコントローラの参照って全部staticだったんですけど、
2.4から動的な参照になりました。
逆にstatic参照にすると読み込んでもらえない(コンパイルエラー)ですね。
とりあえず、気になる点は以上です。
また何か発見があれば書き込んでいきたいなと思っています。
最後までお付き合いいただき、ありがとうございました^^