我正在尝试将我们项目中的Scala/Scalatra版本升级到以下几个版本:
使用sbt 0.11.3
代码编译的很好,但是当运行使用TemplateEngine的单元测试或启动我们的jetty服务器(也使用scalatra)时,我得到了下面的错误。
有人看过这个吗?任何建议都是非常感谢的。
谢谢!
java.lang.NoClassDefFoundError: scala/collection/GenTraversableLike at org.fusesource.scalate.TemplateEngine$$anon$1.(TemplateEngine.scala:162) at org.fusesource.scalate.TemplateEngine.sourceDirectoriesForwarder(TemplateEngine.scala:162) at org.fusesource.scalate.TemplateEngine.(TemplateEngine.scala:114) at com.springer.core.template.TemplateTestHelper$class.beforeAll(TemplateTestHelper.scala:19) at com.springer.core.template.SupportTemplateTest.beforeAll(SupportTemplateTest.斯卡拉:10)在org.scalatest.BeforeAndAfterAll$class.beforeAll(BeforeAndAfterAll.scala:150) at com.springer.core.template.SupportTemplateTest.beforeAll(SupportTemplateTest.scala:10)
发布于 2013-03-26 16:57:26
如果没有看到您的build.sbt或project/build.scala文件,很难确定,但以下是您可能需要尝试的一些事情。
首先,我还不知道有人尝试Scalata2.2.0和Scala2.10.1,所以您在这里处于未知的领域。从理论上讲,这是可行的,但如果将信用评级迅速下调至2.10.0,那就排除了这种可能性。
其次,在2.1.x和2.2.0之间对缩放模板的默认连接进行了更改。
Scalatra 2.1.0没有在默认的g8项目框架中包含标度模板编译,这对许多后来想在生产中部署编译模板的人来说是一个困惑的来源。因此,默认的Scalatra 2.2.0项目框架附带了一些新特性。
它将编译好的模板连接起来,如下所示:
/* wire up the precompiled templates */
override protected def defaultTemplatePath: List[String] = List("/templates/views")
override protected def createTemplateEngine(config: ConfigT) = {
val engine = super.createTemplateEngine(config)
engine.layoutStrategy = new DefaultLayoutStrategy(engine,
TemplateEngine.templateTypes.map("/templates/layouts/default." + _): _*)
engine.packagePrefix = "templates"
engine
}它还添加了一个标度模板编译器
addSbtPlugin("com.mojolly.scalate" % "xsbt-scalate-generator" % "0.4.2")如果不是Scala2.10.1相关的问题,我建议确定它是否是表示编译器的最简单的方法是使用最新的g8查看(或生成和使用)一个新的Scalatra 2.2.0项目框架。
发布于 2013-03-28 06:18:29
如何在构建中定义依赖项?他们是否使用%%而不是%
从2.2.x到更高,我们要求%在%之前的位置
这可能是你看到的错误的原因
https://stackoverflow.com/questions/15641732
复制相似问题