Как вызвать интерпретатор scala в проекте Simple Build Tool? - PullRequest
20 голосов
/ 11 июня 2011

моя программа scala использует интерфейс компилятора из scala.tools.nsc.interpreter.IMain. Когда я компилирую с помощью scalac, все работает как положено. Но когда я компилирую с помощью sbt, он все равно компилируется, но при исполнении выдает следующее сообщение об ошибке при вызове метода interpret из экземпляра IMain:

Failed to initialize compiler: object scala not found.
** Note that as of 2.8 scala does not assume use of the java classpath.
** For the old behavior pass -usejavacp to scala, or if using a Settings
** object programatically, settings.usejavacp.value = true.

Если я использую settings.usejavacp.value = true в экземпляре IMain, я получаю следующее исключение:

java.lang.Error: typeConstructor inapplicable for <none>

Определение моего проекта SBT:

class Project(info: ProjectInfo) extends DefaultProject(info){
    val scalaSwing = "org.scala-lang" % "scala-swing" % "2.9.0"
    val scalaCompiler = "org.scala-lang" % "scala-compiler" % "2.9.0"
}

Что здесь не так? И как я могу использовать интерпретатор в проекте Simple Build Tool?

Я использую Scala 2.9.0 и Simple Build Tool 0.7.7

Ответы [ 3 ]

24 голосов
/ 13 января 2014
sbt console // Starts a Scala interpreter

Вот новый FAQ (предыдущий ответ устарел)

http://www.scala -sbt.org / 0.12.4 / docs / faq.html

Вы также можете найти ответы на часто задаваемые вопросы по более новым версиям.
Обратите внимание, что sbt console-quick загружает консоль без зависимостей.

6 голосов
/ 29 июня 2011
1 голос
/ 14 марта 2014

В более поздних версиях sbt (0.12 и новее) должно быть достаточно следующего:

fork in run := true
...