Scalate TemplateException with Play 2.2.1

时间:2014-03-08 17:54:30

标签: scala playframework-2.0 scalate

我正在尝试使用Scalate 1.6.1 with Play,但它给了我这个:

[TemplateException: scala.reflect.internal.TreeInfo.firstArgument(Lscala/reflect/internal/Trees$Tree;)Lscala/reflect/internal/Trees$Tree;]

在ScalaIntegration.scala

中的此代码中
def render(args: (Symbol, Any)*) = {
  ScalateContent{
    scalateEngine.layout(name, args.map {
      case (k, v) => k.name -> v
    } toMap)
  }
}

我知道它可能是版本问题,因此我目前正在尝试使用scala 2.10.0运行它,但我希望然后更改为2.10.2。

2 个答案:

答案 0 :(得分:0)

不要更改scala版本,请尝试通过在sbt build.scala中添加它来明确指定scala-reflect和scala-compiler的依赖版本:(在我的情况下,我想使用2.10.3)

libraryDependencies ++= seq(
"org.scala-lang" % "scala-reflect" % "2.10.3",
"org.scala-lang" % "scala-compiler" % "2.10.3"
)

这是基于Ross A. Baker的回复: https://groups.google.com/d/msg/scalate/rKNkwgHPQDM/ClfBTM1VyegJ

答案 1 :(得分:0)

Scalate 1.6.1依赖于2.10.3中缺少的scala-reflect函数。 尝试Scalatra人员的Scalate 1.7.0:

"org.scalatra.scalate" % "scalate-something" % "1.7.0"

无论如何,scalate看起来似乎没有被fusesource人员维护得很好: https://groups.google.com/forum/#!topic/scalate/X_EcZEUk_lo