ちなみに、最新版では改善されてます。*1
2.1.0というか、2.0.4の頃からあるんですね・・・。
package play.api package object models
にするべきところを、単に
package object models
としている・・・と思ったら、そうでなく理由あるかもしれない(?) *2 けど、面倒なので詳しく追ってません。sampleにおいてmodelsパッケージやcontrollersパッケージあるので、そのパッケージ構成がなんとなく推奨されてる気がするが、
https://github.com/playframework/Play20/blob/2.1.0/samples/scala/forms/app/models/User.scala
https://github.com/playframework/Play20/blob/2.1.0/samples/scala/forms/app/controllers/Application.scala
それで、ユーザー側でmodelsやcontrollersというpackage objectをつくると、被る・・・。もし、modelsやcontrollersというpackage objectを定義してしまってる人は、現在なんとなく動いていても、実行時に万が一play側で定義しているmodelsのほうのpackage objectを先にpathから見つけてしまって「メソッドがないよ!」とか実行時エラーになる可能性あるので、今すぐpackage名変更するか、"models"や"controllers"というpackage objectは使わないほうがいいかも・・・?
modelsじゃなくて、package 名 modelとかにしようかな・・・。
「IDEAがpackage objectに定義したもの認識してくれない!」とか言っていたんですが、もしかしてこいつのせいか・・・?
*1: https://github.com/playframework/Play20/pull/735
*2: 代わりに違うオブジェクト置いてる・・・。このあたりのpull reqの議論読んでください https://github.com/playframework/Play20/pull/489 https://github.com/playframework/Play20/pull/735