迁移播放框架 2.5:"not found: value routes"



>我有一个使用 Play 2.4 运行良好的应用程序,并决定使用 Play 2.5 升级它,但现在我的 Twirl 模板中遇到了一些问题。 编译时,现在找不到路由包,而在迁移之前它工作正常:

[error] /Users/myname/Projects/myprpject/app/views/account.scala.html:14: not found: value routes

以及我的帐户.scala.html文件中的代码示例:

<a href="@routes.Application.logout" class="thumbnail">

如果我用 controllers.routes 替换路由,编译工作正常,但如果可以避免的话,我不想更改我的所有视图。我想这是由于默认路由包或类似的东西在 2.5 版本中发生了变化,但无法完全弄清楚原因。

如果这有帮助,我还有其他编译问题,这些问题在迁移过程中出现,与此类似:

[error] /Users/rbrodier/Projects/rzretail-bo/app/views/account.scala.html:18: could not find implicit value for parameter messages: play.api.i18n.Messages
[error] /Users/rbrodier/Projects/rzretail-bo/app/views/admin/administration/index.scala.html:15: not found: value flash

不确定这是否相关,但这是我的 Build.scala(如果您习惯了,类似于 build.sbt 文件(:

import com.typesafe.sbt.less.Import.LessKeys
import com.typesafe.sbt.web.SbtWeb.autoImport._
import com.typesafe.sbt.web.SbtWeb
import sbt._
import sbt.Keys._
import play.sbt.Play.autoImport._
import PlayKeys._
import com.typesafe.sbt.rjs.SbtRjs.autoImport._
object ApplicationBuild extends Build {
val appName = "myproject"
val appVersion = "1.0-SNAPSHOT"
val appDependencies = Seq(
javaCore, javaJdbc, javaWs, cache
, "mysql" % "mysql-connector-java" % "5.1.43"
, "net.sf.opencsv" % "opencsv" % "2.3"
, "commons-beanutils" % "commons-beanutils-core" % "1.8.3"
, "org.apache.poi" % "poi" % "3.13"
, "org.apache.poi" % "poi-ooxml" % "3.13"
, "org.apache.poi" % "poi-scratchpad" % "3.13"
, "org.apache.commons" % "commons-math3" % "3.5"
, "commons-io" % "commons-io" % "2.5"
, "ch.qos.logback" % "logback-core" % "1.1.3"
, "ch.qos.logback" % "logback-classic" % "1.1.3"
, "org.apache.xmlgraphics" % "fop" % "2.2"
, "org.apache.xmlgraphics" % "batik-codec" % "1.7"
, "com.jolbox" % "bonecp" % "0.8.0.RELEASE"
, "com.google.inject" % "guice" % "3.0"
, "com.mailjet" % "mailjet-client" % "4.1.1"
, "org.jsoup" % "jsoup" % "1.8.3"
)
val main = Project(appName, file("."))
.enablePlugins(play.sbt.Play, play.ebean.sbt.PlayEbean, SbtWeb)
.settings(
sources in doc in Compile := List()
,scalaVersion := "2.11.8"
, javacOptions ++= Seq("-source", "1.8", "-target", "1.8")
, version := appVersion
, libraryDependencies ++= appDependencies
, includeFilter in (Assets, LessKeys.less) := "*.less"
, excludeFilter in (Assets, LessKeys.less) := "_*.less"
, LessKeys.compress := true
, pipelineStages := Seq(rjs)
)
}

任何帮助表示赞赏!

所以这应该是一个评论,但我没有足够的代表。看起来您的导入位置可能搞砸了。

也许这会有所帮助: https://www.playframework.com/documentation/2.6.x/Migration25#Routes-generated-with-InjectedRoutesGenerator

引用:

如果您使用的是 Build.scala 而不是 build.sbt,则需要导入 routesGenerator 设置键:

import play.sbt.routes.RoutesCompiler.autoImport._

希望对您有所帮助。

最新更新