这篇文章是关于怎样将play 2.2.3的工程迁移到play 2.3.0
1、安装sbt 0.13.5,去官网下载sbt 0.13.5: http://www.scala-sbt.org/download.html,安装完之后,
修改工程下的project/build.properties文件。
修改sbt版本:
sbt.version=0.13.5
2、升级scala到2.11.1(可选),由于play 2.3 同时支持 scala 2.10 和 scala 2.11所以,可以不用升级到2.11,
但是你用什么版本的scala需要显式声明。修改build.sbt文件,增加一行:
scalaVersion := "2.11.1",
如果你用的是2.10.4 就填对应的版本号。
3、修改插件版本,修改project/plugins.sbt文件:
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.3.XXX")
xxx是当前的play 版本,当前最新的是2.3.0。
4、sbt 0.13.5加入了一个新的特性"auto plugin",具体的可以看官网的介绍,
因此带来的变化是需要在build.sbt,加入一行:
lazy val root = (project in file(".")).enablePlugins(PlayScala)
如果你的工程是java,则加入:
lazy val root = (project in file(".")).enablePlugins(PlayJava)
所以build.sbt修改成如下形式:
name := "your project name"
version := "1.0.0-SNAPSHOT"
lazy val root = (project in file(".")).enablePlugins(PlayScala)
scalaVersion := "2.11.1"
libraryDependencies ++= Seq(
//...
}
5、play 2.3使用activator命令而不是play命令来启动,但是运行命令还是没有变得。然后基本上就可以了。
然后最好不要跳级来迁移,就是不要从2.1直接升级到2.3因为2.1中的一些特性在2.3中被移除了,所以首先
升级到2.2看看有提示什么是废弃的特性,然后修改好,接着再升级到2.3。
比如 :
def asyncAction = Action { Async { Future(someExpensiveComputation) }}
上面的这个方式在2.2中是建议改成下面这种使用方式,而在2.3中被移除了。
def asyncAction = Action.async { Future(someExpensiveComputation) }