Мне нужно использовать парсер scala внутри приложения Play Framework.Play Framework и scala.tools.nsc
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 не предполагает использование класса javapathpath.
** Для старого поведения передать -usejavacp к Скале, или если с помощью настройки
** объект программно, settings.usejavacp.value = истина.
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? – opyate
Также, как вы используете свое приложение? – opyate