【发布时间】:2012-05-25 09:43:56
【问题描述】:
我必须在 Play Framework 应用程序中使用 Scala 解析器。
import scala.tools.nsc._
trait Foo
class Parser {
def parse(code: String) = {
val settings = new Settings
settings.embeddedDefaults[Foo]
val interpreter = new Interpreter(settings)
interpreter.parse(code)
}
}
我在 Build.scala 中有以下依赖
"org.scala-lang" % "scala-compiler" % "2.9.1"
此代码在使用 SBT 构建时有效。在 Play 中,它以 NullPointerException 结束,并且:
初始化编译器失败:找不到对象scala。
** 请注意,从 2.8 开始,scala 不假定使用 java 类路径。
** 对于旧行为,将 -usejavacp 传递给 scala,或者如果使用设置
** 对象编程,settings.usejavacp.value = true。
Build.scala
import sbt._
import Keys._
import PlayProject._
object ApplicationBuild extends Build {
val appName = "com.qwerty.utils"
val appVersion = "1.0-SNAPSHOT"
val scalaVersion = "2.9.1"
val appDependencies = Seq(
"org.scala-lang" % "scala-compiler" % "2.9.1"
)
val main = PlayProject(appName, appVersion, appDependencies, mainLang = SCALA).settings(
// Add your own project settings here
)
}
【问题讨论】:
-
您是否将其标记为库依赖项或构建级依赖项?无论如何,您可能希望将 Build.scala 文件添加到问题中。
-
你在哪一行得到 NPE?
-
另外,您的应用运行情况如何?
-
interpreter.parse(code)出现错误
标签: scala sbt playframework-2.0