本文仅适合从Play2.04向2.1升级,有问题请绕道。
刚刚完成对一个项目从Play2.04向2.1升级。虽然之前也做过几次,但都比较简单。记下来,说不定有用呢。
基本的升级官网有,也可以看我前面的日志http://somefuture.iteye.com/blog/1980134。主要包括修改project/plugins.sbt、project/Build.scala、project/build.properties文件。
这些都完成后,根据项目情况还需要做很多事情。
比如编译的时候提示页面有问题,如not found: value flash等。
这些问题的出现经过我努力查找,以为是没引入变量所致,所以进行了如下尝试http://somefuture.iteye.com/blog/1984955,但是这样做并没有改变错误依旧。后来做了几个尝试,感觉起作用的做法应该是
val appDependencies = Seq(
// Add your project dependencies here,
jdbc,javaCore, javaJdbc,javaJpa,filters,
"org.hibernate" % "hibernate-entitymanager" % "3.6.9.Final"
)
加入了红色的那一行。
有兴趣的可以看看这些帖子:【【【【【【【
http://www.manning-sandbox.com/thread.jspa?messageID=132415
http://stackoverflow.com/questions/15335581/migration-problems-from-play-2-04-to-play-2-1
http://stackoverflow.com/questions/10888407/can-i-call-session-in-template-view-on-play-framework
】】】】】】】
然后是定时任务。好像04的Akka.system().scheduler().scheduleOnce()和10的不一样。
这个方面可以了解下:
【【【【【【【
http://doc.akka.io/docs/akka/2.1.2/project/migration-guide-2.0.x-2.1.x.html
http://doc.akka.io/docs/akka/snapshot/java/scheduler.html
http://stackoverflow.com/questions/15430712/play-framework-2-1-scheduling-async-tasks-java
】】】】】】】
做法就是用
import scala.concurrent.duration.Duration;
代替
import akka.util.Duration;
因为后面这个类没有了。然后为scheduleOnce()添加一个对象参数。
完了就是修改form,因为form()不属于Controller了,还是属于Form了。这个比较简单了,就是费些时间。