迁移到 Play 2.5
Migrating to Play 2.5
我正在尝试迁移我在 Play 上开始的一个小项目! 2.2 至 2.5。但是,我 运行 正在研究 Ebeans 的问题,并将 Ebeans 迁移到一个单独的模块。
所以我尝试启动一个干净的项目,并根据文档添加 EBeans,但我仍然收到以下消息:
[info] Loading project definition from /Users/user/Documents/Java/xyz/project
Play ebean module has been replaced with an external Play ebean plugin.
See https://playframework.com/documentation/2.4.x/Migration24 for details.
我的build.sbt:
name := "y2kbooking"
version := "1.0"
lazy val `y2kbooking` = (project in file(".")).enablePlugins(PlayJava, PlayEbean)
scalaVersion := "2.11.6"
libraryDependencies ++= Seq( javaJdbc , javaEbean , cache , javaWs )
unmanagedResourceDirectories in Test <+= baseDirectory ( _ /"target/web/public/test" )
(请注意,Idea 将 PlayEbean 显示为红色,因为它不知道该模块?)
Plugins.sbt:
logLevel := Level.Warn
resolvers += "Typesafe repository" at "http://repo.typesafe.com/typesafe/releases/"
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.4.0")
addSbtPlugin("com.typesafe.sbt" % "sbt-play-ebean" % "1.0.0")
build.properties:
sbt.version=0.13.8
application.conf:
db.default.driver=org.h2.Driver
db.default.url="jdbc:h2:mem:play"
db.default.user=sa
db.default.password="defaultlogonpassword"
ebean.default= ["models.*"]
有什么我想念的吗?
我使用 IDEA 创建投影,并使用 IDEA Scale 插件 1.5.4 运行 创建它。
[编辑:]
我还尝试在 stb-plugin 之前添加 sbt-play-ebean addSbtPlugin。然而,这会产生以下错误:
Error:Error while importing SBT project:
...
at sbt.MainLoop$$anonfun$runWithNewLog.apply(MainLoop.scala:65)
at sbt.Using.apply(Using.scala:24)
at sbt.MainLoop$.runWithNewLog(MainLoop.scala:65)
at sbt.MainLoop$.runAndClearLast(MainLoop.scala:48)
at sbt.MainLoop$.runLoggedLoop(MainLoop.scala:32)
at sbt.MainLoop$.runLogged(MainLoop.scala:24)
at sbt.StandardMain$.runManaged(Main.scala:53)
at sbt.xMain.run(Main.scala:28)
at xsbt.boot.Launch$$anonfun$run.apply(Launch.scala:109)
at xsbt.boot.Launch$.withContextLoader(Launch.scala:129)
at xsbt.boot.Launch$.run(Launch.scala:109)
at xsbt.boot.Launch$$anonfun$apply.apply(Launch.scala:36)
at xsbt.boot.Launch$.launch(Launch.scala:117)
at xsbt.boot.Launch$.apply(Launch.scala:19)
at xsbt.boot.Boot$.runImpl(Boot.scala:44)
at xsbt.boot.Boot$.main(Boot.scala:20)
at xsbt.boot.Boot.main(Boot.scala)
[error] java.lang.ClassNotFoundException: $bc978b751097ebe513a6$
[error] Use 'last' for the full log.
Invalid response.
[编辑 2:]
libraryDependencies ++= Seq( javaJdbc , javaEbean , cache , javaWs )
我想我错过了 'javaEbean' 仍然在 libraryDependencies 中的事实,这可能是原因。但是,删除它不会给出迁移警告,但会出现与上面关于 ClassNotFound 的编辑中类似的异常:
java.lang.ClassNotFoundException: [=17=]b93c53b7f37eaeb2c7f$
at scala.tools.nsc.interpreter.AbstractFileClassLoader.findClass(AbstractFileClassLoader.scala:83)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:344)
at sbt.compiler.Eval$.getModule(Eval.scala:471)
at sbt.compiler.Eval$.getValue(Eval.scala:462)
at sbt.compiler.Eval$$anonfun.apply(Eval.scala:97)
at sbt.compiler.Eval$$anonfun.apply(Eval.scala:97)
at sbt.EvaluateConfigurations$$anonfun$evaluateDslEntry.apply(EvaluateConfigurations.scala:185)
at sbt.EvaluateConfigurations$$anonfun$evaluateDslEntry.apply(EvaluateConfigurations.scala:183)
at sbt.EvaluateConfigurations$$anonfun$evaluateSbtFile$$anonfun.apply(EvaluateConfigurations.scala:128)
at sbt.EvaluateConfigurations$$anonfun$evaluateSbtFile$$anonfun.apply(EvaluateConfigurations.scala:128)
at scala.collection.TraversableLike$$anonfun$map.apply(TraversableLike.scala:244)
at scala.collection.TraversableLike$$anonfun$map.apply(TraversableLike.scala:244)
at scala.collection.immutable.List.foreach(List.scala:318)
at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
at scala.collection.AbstractTraversable.map(Traversable.scala:105)
at sbt.EvaluateConfigurations$$anonfun$evaluateSbtFile.apply(EvaluateConfigurations.scala:128)
at sbt.EvaluateConfigurations$$anonfun$evaluateSbtFile.apply(EvaluateConfigurations.scala:122)
at sbt.Load$.sbt$Load$$loadSettingsFile(Load.scala:712)
at sbt.Load$$anonfun$sbt$Load$$memoLoadSettingsFile.apply(Load.scala:717)
at sbt.Load$$anonfun$sbt$Load$$memoLoadSettingsFile.apply(Load.scala:716)
at scala.collection.MapLike$class.getOrElse(MapLike.scala:128)
at scala.collection.AbstractMap.getOrElse(Map.scala:58)
at sbt.Load$.sbt$Load$$memoLoadSettingsFile(Load.scala:716)
at sbt.Load$$anonfun$loadFiles.apply(Load.scala:723)
at sbt.Load$$anonfun$loadFiles.apply(Load.scala:723)
at scala.collection.TraversableLike$$anonfun$map.apply(TraversableLike.scala:244)
at scala.collection.TraversableLike$$anonfun$map.apply(TraversableLike.scala:244)
at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59)
at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47)
at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
at scala.collection.AbstractTraversable.map(Traversable.scala:105)
at sbt.Load$.loadFiles(Load.scala:723)
at sbt.Load$.discoverProjects(Load.scala:734)
at sbt.Load$.discover(Load.scala:545)
at sbt.Load$.loadTransitive(Load.scala:574)
at sbt.Load$.loadProjects(Load.scala:442)
at sbt.Load$.loadUnit(Load.scala:446)
at sbt.Load$$anonfun$$anonfun$apply.apply(Load.scala:281)
at sbt.Load$$anonfun$$anonfun$apply.apply(Load.scala:281)
at sbt.BuildLoader$$anonfun$componentLoader$$anonfun$apply$$anonfun$apply$$anonfun$apply.apply(BuildLoader.scala:91)
at sbt.BuildLoader$$anonfun$componentLoader$$anonfun$apply$$anonfun$apply$$anonfun$apply.apply(BuildLoader.scala:90)
at sbt.BuildLoader.apply(BuildLoader.scala:140)
at sbt.Load$.loadAll(Load.scala:334)
at sbt.Load$.loadURI(Load.scala:289)
at sbt.Load$.load(Load.scala:285)
at sbt.Load$.load(Load.scala:276)
at sbt.Load$.apply(Load.scala:130)
at sbt.Load$.buildPluginDefinition(Load.scala:821)
at sbt.Load$.buildPlugins(Load.scala:787)
at sbt.Load$.plugins(Load.scala:775)
at sbt.Load$.loadUnit(Load.scala:431)
at sbt.Load$$anonfun$$anonfun$apply.apply(Load.scala:281)
at sbt.Load$$anonfun$$anonfun$apply.apply(Load.scala:281)
at sbt.BuildLoader$$anonfun$componentLoader$$anonfun$apply$$anonfun$apply$$anonfun$apply.apply(BuildLoader.scala:91)
at sbt.BuildLoader$$anonfun$componentLoader$$anonfun$apply$$anonfun$apply$$anonfun$apply.apply(BuildLoader.scala:90)
at sbt.BuildLoader.apply(BuildLoader.scala:140)
at sbt.Load$.loadAll(Load.scala:334)
at sbt.Load$.loadURI(Load.scala:289)
at sbt.Load$.load(Load.scala:285)
at sbt.Load$.load(Load.scala:276)
at sbt.Load$.apply(Load.scala:130)
at sbt.Load$.defaultLoad(Load.scala:36)
at sbt.BuiltinCommands$.doLoadProject(Main.scala:481)
at sbt.BuiltinCommands$$anonfun$loadProjectImpl.apply(Main.scala:475)
at sbt.BuiltinCommands$$anonfun$loadProjectImpl.apply(Main.scala:475)
at sbt.Command$$anonfun$applyEffect$$anonfun$apply.apply(Command.scala:58)
at sbt.Command$$anonfun$applyEffect$$anonfun$apply.apply(Command.scala:58)
at sbt.Command$$anonfun$applyEffect$$anonfun$apply.apply(Command.scala:60)
at sbt.Command$$anonfun$applyEffect$$anonfun$apply.apply(Command.scala:60)
at sbt.Command$.process(Command.scala:92)
at sbt.MainLoop$$anonfun$$anonfun$apply.apply(MainLoop.scala:98)
at sbt.MainLoop$$anonfun$$anonfun$apply.apply(MainLoop.scala:98)
at sbt.State$$anon.process(State.scala:184)
at sbt.MainLoop$$anonfun.apply(MainLoop.scala:98)
at sbt.MainLoop$$anonfun.apply(MainLoop.scala:98)
at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
at sbt.MainLoop$.next(MainLoop.scala:98)
at sbt.MainLoop$.run(MainLoop.scala:91)
at sbt.MainLoop$$anonfun$runWithNewLog.apply(MainLoop.scala:70)
at sbt.MainLoop$$anonfun$runWithNewLog.apply(MainLoop.scala:65)
at sbt.Using.apply(Using.scala:24)
at sbt.MainLoop$.runWithNewLog(MainLoop.scala:65)
at sbt.MainLoop$.runAndClearLast(MainLoop.scala:48)
at sbt.MainLoop$.runLoggedLoop(MainLoop.scala:32)
at sbt.MainLoop$.runLogged(MainLoop.scala:24)
at sbt.StandardMain$.runManaged(Main.scala:53)
at sbt.xMain.run(Main.scala:28)
at xsbt.boot.Launch$$anonfun$run.apply(Launch.scala:109)
at xsbt.boot.Launch$.withContextLoader(Launch.scala:129)
at xsbt.boot.Launch$.run(Launch.scala:109)
at xsbt.boot.Launch$$anonfun$apply.apply(Launch.scala:36)
at xsbt.boot.Launch$.launch(Launch.scala:117)
at xsbt.boot.Launch$.apply(Launch.scala:19)
at xsbt.boot.Boot$.runImpl(Boot.scala:44)
at xsbt.boot.Boot$.main(Boot.scala:20)
at xsbt.boot.Boot.main(Boot.scala)
[error] java.lang.ClassNotFoundException: [=17=]b93c53b7f37eaeb2c7f$
您需要将其从依赖项中移除。将您的库依赖项更改为:
libraryDependencies ++= Seq( javaJdbc , cache , javaWs )
我正在尝试迁移我在 Play 上开始的一个小项目! 2.2 至 2.5。但是,我 运行 正在研究 Ebeans 的问题,并将 Ebeans 迁移到一个单独的模块。
所以我尝试启动一个干净的项目,并根据文档添加 EBeans,但我仍然收到以下消息:
[info] Loading project definition from /Users/user/Documents/Java/xyz/project
Play ebean module has been replaced with an external Play ebean plugin.
See https://playframework.com/documentation/2.4.x/Migration24 for details.
我的build.sbt:
name := "y2kbooking"
version := "1.0"
lazy val `y2kbooking` = (project in file(".")).enablePlugins(PlayJava, PlayEbean)
scalaVersion := "2.11.6"
libraryDependencies ++= Seq( javaJdbc , javaEbean , cache , javaWs )
unmanagedResourceDirectories in Test <+= baseDirectory ( _ /"target/web/public/test" )
(请注意,Idea 将 PlayEbean 显示为红色,因为它不知道该模块?)
Plugins.sbt:
logLevel := Level.Warn
resolvers += "Typesafe repository" at "http://repo.typesafe.com/typesafe/releases/"
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.4.0")
addSbtPlugin("com.typesafe.sbt" % "sbt-play-ebean" % "1.0.0")
build.properties:
sbt.version=0.13.8
application.conf:
db.default.driver=org.h2.Driver
db.default.url="jdbc:h2:mem:play"
db.default.user=sa
db.default.password="defaultlogonpassword"
ebean.default= ["models.*"]
有什么我想念的吗? 我使用 IDEA 创建投影,并使用 IDEA Scale 插件 1.5.4 运行 创建它。
[编辑:] 我还尝试在 stb-plugin 之前添加 sbt-play-ebean addSbtPlugin。然而,这会产生以下错误:
Error:Error while importing SBT project:
...
at sbt.MainLoop$$anonfun$runWithNewLog.apply(MainLoop.scala:65)
at sbt.Using.apply(Using.scala:24)
at sbt.MainLoop$.runWithNewLog(MainLoop.scala:65)
at sbt.MainLoop$.runAndClearLast(MainLoop.scala:48)
at sbt.MainLoop$.runLoggedLoop(MainLoop.scala:32)
at sbt.MainLoop$.runLogged(MainLoop.scala:24)
at sbt.StandardMain$.runManaged(Main.scala:53)
at sbt.xMain.run(Main.scala:28)
at xsbt.boot.Launch$$anonfun$run.apply(Launch.scala:109)
at xsbt.boot.Launch$.withContextLoader(Launch.scala:129)
at xsbt.boot.Launch$.run(Launch.scala:109)
at xsbt.boot.Launch$$anonfun$apply.apply(Launch.scala:36)
at xsbt.boot.Launch$.launch(Launch.scala:117)
at xsbt.boot.Launch$.apply(Launch.scala:19)
at xsbt.boot.Boot$.runImpl(Boot.scala:44)
at xsbt.boot.Boot$.main(Boot.scala:20)
at xsbt.boot.Boot.main(Boot.scala)
[error] java.lang.ClassNotFoundException: $bc978b751097ebe513a6$
[error] Use 'last' for the full log.
Invalid response.
[编辑 2:]
libraryDependencies ++= Seq( javaJdbc , javaEbean , cache , javaWs )
我想我错过了 'javaEbean' 仍然在 libraryDependencies 中的事实,这可能是原因。但是,删除它不会给出迁移警告,但会出现与上面关于 ClassNotFound 的编辑中类似的异常:
java.lang.ClassNotFoundException: [=17=]b93c53b7f37eaeb2c7f$
at scala.tools.nsc.interpreter.AbstractFileClassLoader.findClass(AbstractFileClassLoader.scala:83)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:344)
at sbt.compiler.Eval$.getModule(Eval.scala:471)
at sbt.compiler.Eval$.getValue(Eval.scala:462)
at sbt.compiler.Eval$$anonfun.apply(Eval.scala:97)
at sbt.compiler.Eval$$anonfun.apply(Eval.scala:97)
at sbt.EvaluateConfigurations$$anonfun$evaluateDslEntry.apply(EvaluateConfigurations.scala:185)
at sbt.EvaluateConfigurations$$anonfun$evaluateDslEntry.apply(EvaluateConfigurations.scala:183)
at sbt.EvaluateConfigurations$$anonfun$evaluateSbtFile$$anonfun.apply(EvaluateConfigurations.scala:128)
at sbt.EvaluateConfigurations$$anonfun$evaluateSbtFile$$anonfun.apply(EvaluateConfigurations.scala:128)
at scala.collection.TraversableLike$$anonfun$map.apply(TraversableLike.scala:244)
at scala.collection.TraversableLike$$anonfun$map.apply(TraversableLike.scala:244)
at scala.collection.immutable.List.foreach(List.scala:318)
at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
at scala.collection.AbstractTraversable.map(Traversable.scala:105)
at sbt.EvaluateConfigurations$$anonfun$evaluateSbtFile.apply(EvaluateConfigurations.scala:128)
at sbt.EvaluateConfigurations$$anonfun$evaluateSbtFile.apply(EvaluateConfigurations.scala:122)
at sbt.Load$.sbt$Load$$loadSettingsFile(Load.scala:712)
at sbt.Load$$anonfun$sbt$Load$$memoLoadSettingsFile.apply(Load.scala:717)
at sbt.Load$$anonfun$sbt$Load$$memoLoadSettingsFile.apply(Load.scala:716)
at scala.collection.MapLike$class.getOrElse(MapLike.scala:128)
at scala.collection.AbstractMap.getOrElse(Map.scala:58)
at sbt.Load$.sbt$Load$$memoLoadSettingsFile(Load.scala:716)
at sbt.Load$$anonfun$loadFiles.apply(Load.scala:723)
at sbt.Load$$anonfun$loadFiles.apply(Load.scala:723)
at scala.collection.TraversableLike$$anonfun$map.apply(TraversableLike.scala:244)
at scala.collection.TraversableLike$$anonfun$map.apply(TraversableLike.scala:244)
at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59)
at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47)
at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
at scala.collection.AbstractTraversable.map(Traversable.scala:105)
at sbt.Load$.loadFiles(Load.scala:723)
at sbt.Load$.discoverProjects(Load.scala:734)
at sbt.Load$.discover(Load.scala:545)
at sbt.Load$.loadTransitive(Load.scala:574)
at sbt.Load$.loadProjects(Load.scala:442)
at sbt.Load$.loadUnit(Load.scala:446)
at sbt.Load$$anonfun$$anonfun$apply.apply(Load.scala:281)
at sbt.Load$$anonfun$$anonfun$apply.apply(Load.scala:281)
at sbt.BuildLoader$$anonfun$componentLoader$$anonfun$apply$$anonfun$apply$$anonfun$apply.apply(BuildLoader.scala:91)
at sbt.BuildLoader$$anonfun$componentLoader$$anonfun$apply$$anonfun$apply$$anonfun$apply.apply(BuildLoader.scala:90)
at sbt.BuildLoader.apply(BuildLoader.scala:140)
at sbt.Load$.loadAll(Load.scala:334)
at sbt.Load$.loadURI(Load.scala:289)
at sbt.Load$.load(Load.scala:285)
at sbt.Load$.load(Load.scala:276)
at sbt.Load$.apply(Load.scala:130)
at sbt.Load$.buildPluginDefinition(Load.scala:821)
at sbt.Load$.buildPlugins(Load.scala:787)
at sbt.Load$.plugins(Load.scala:775)
at sbt.Load$.loadUnit(Load.scala:431)
at sbt.Load$$anonfun$$anonfun$apply.apply(Load.scala:281)
at sbt.Load$$anonfun$$anonfun$apply.apply(Load.scala:281)
at sbt.BuildLoader$$anonfun$componentLoader$$anonfun$apply$$anonfun$apply$$anonfun$apply.apply(BuildLoader.scala:91)
at sbt.BuildLoader$$anonfun$componentLoader$$anonfun$apply$$anonfun$apply$$anonfun$apply.apply(BuildLoader.scala:90)
at sbt.BuildLoader.apply(BuildLoader.scala:140)
at sbt.Load$.loadAll(Load.scala:334)
at sbt.Load$.loadURI(Load.scala:289)
at sbt.Load$.load(Load.scala:285)
at sbt.Load$.load(Load.scala:276)
at sbt.Load$.apply(Load.scala:130)
at sbt.Load$.defaultLoad(Load.scala:36)
at sbt.BuiltinCommands$.doLoadProject(Main.scala:481)
at sbt.BuiltinCommands$$anonfun$loadProjectImpl.apply(Main.scala:475)
at sbt.BuiltinCommands$$anonfun$loadProjectImpl.apply(Main.scala:475)
at sbt.Command$$anonfun$applyEffect$$anonfun$apply.apply(Command.scala:58)
at sbt.Command$$anonfun$applyEffect$$anonfun$apply.apply(Command.scala:58)
at sbt.Command$$anonfun$applyEffect$$anonfun$apply.apply(Command.scala:60)
at sbt.Command$$anonfun$applyEffect$$anonfun$apply.apply(Command.scala:60)
at sbt.Command$.process(Command.scala:92)
at sbt.MainLoop$$anonfun$$anonfun$apply.apply(MainLoop.scala:98)
at sbt.MainLoop$$anonfun$$anonfun$apply.apply(MainLoop.scala:98)
at sbt.State$$anon.process(State.scala:184)
at sbt.MainLoop$$anonfun.apply(MainLoop.scala:98)
at sbt.MainLoop$$anonfun.apply(MainLoop.scala:98)
at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
at sbt.MainLoop$.next(MainLoop.scala:98)
at sbt.MainLoop$.run(MainLoop.scala:91)
at sbt.MainLoop$$anonfun$runWithNewLog.apply(MainLoop.scala:70)
at sbt.MainLoop$$anonfun$runWithNewLog.apply(MainLoop.scala:65)
at sbt.Using.apply(Using.scala:24)
at sbt.MainLoop$.runWithNewLog(MainLoop.scala:65)
at sbt.MainLoop$.runAndClearLast(MainLoop.scala:48)
at sbt.MainLoop$.runLoggedLoop(MainLoop.scala:32)
at sbt.MainLoop$.runLogged(MainLoop.scala:24)
at sbt.StandardMain$.runManaged(Main.scala:53)
at sbt.xMain.run(Main.scala:28)
at xsbt.boot.Launch$$anonfun$run.apply(Launch.scala:109)
at xsbt.boot.Launch$.withContextLoader(Launch.scala:129)
at xsbt.boot.Launch$.run(Launch.scala:109)
at xsbt.boot.Launch$$anonfun$apply.apply(Launch.scala:36)
at xsbt.boot.Launch$.launch(Launch.scala:117)
at xsbt.boot.Launch$.apply(Launch.scala:19)
at xsbt.boot.Boot$.runImpl(Boot.scala:44)
at xsbt.boot.Boot$.main(Boot.scala:20)
at xsbt.boot.Boot.main(Boot.scala)
[error] java.lang.ClassNotFoundException: [=17=]b93c53b7f37eaeb2c7f$
您需要将其从依赖项中移除。将您的库依赖项更改为:
libraryDependencies ++= Seq( javaJdbc , cache , javaWs )