argius note

プログラミング関連

Play2.0.4→2.1.1

注意:既に7/5に2.1.2がリリースされています。
この記事の内容は一部、先月行った作業のものです。
すみません。雑です。


設定変更

簡単に説明すると、設定はこの3つのファイルのPlayとSBTのバージョンアップに伴う変更を入れるだけです。

  • project/Build.scala
  • project/build.properties
  • project/plugins.sbt

Play APIの変更で気づいた部分

全ての変更点を調べたわけではなく、使っているものでコンパイルエラーになったものです。


ひとつめ。
ケースクラスanorm.MetaDataItemの第1引数が、Stringからanorm.ColumnNameケースクラスに変更されています。
下記のような感じに直せばOKそうです。

// MetaDataItem("TITLE", false, "VARCHAR") // 2.0.4のときのコード
MetaDataItem(ColumnName("TITLE", None), false, "VARCHAR")


ふたつめ。
"Play2.0で作ったアプリの中にバッチ的コマンドラインアプリを組み込んでみる"で使ったテスト用Applicationインスタンスの取得方法についてです。
リンク先のエントリにも追記していますが、Applicationクラスがabstractになってしまいました。代わりにDefaultApplicationクラスを使えばOKです。常にMode=Prodで良ければStaticApplicationを使う手もあります。


Scala2.9.2->2.10.1に伴う変更

このようなコードは警告がでます。

try {
  ...
} catch {
  case e => ...
  // case NonFatal(e) => // no warnings
  // case e: Throwable => // no warnings (not recommended)
}

「eは(おそらく)Throwableだけど、本当に良いの? 本当にNotImplementedErrorとかでも無視するけど本当に?」のようなことらしいです。
警告を消したければ、とりあえずutil.control.NonFatalを使うと回避できます。
詳細はgoogle:scala NonFatalを参照。


サーバ側のPlayバージョンが一瞬2.1.2に

サーバ側のバージョンアップは、今日になってから実施したため、2.1.2を入れてしまいました。
別に動けば問題なかったんですが、ビルド失敗。
2.1.1を入れなおして、ビルド成功。


古いバージョンをインストールするには、下記ページが分かりやすいです。


以上です。