Ответ 1
Взгляните на викторину SBT: http://www.scala-sbt.org/0.13/docs/Faq.html#How+do+I+use+the+Scala+interpreter+in+my+code%3F
Здесь есть запись о запуске интерпретатора.
my scala программа использует интерфейс компилятора из scala.tools.nsc.interpreter.IMain. Когда я компилирую с помощью scalac, все работает так, как ожидалось. Но когда я компилирую с sbt, он все еще компилируется, но при выполнении он выдает следующее сообщение об ошибке при вызове метода интерпретации из экземпляра 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
Взгляните на викторину SBT: http://www.scala-sbt.org/0.13/docs/Faq.html#How+do+I+use+the+Scala+interpreter+in+my+code%3F
Здесь есть запись о запуске интерпретатора.
sbt console // Starts a Scala interpreter
Вот новый FAQ (предыдущий ответ устарел)
http://www.scala-sbt.org/0.12.4/docs/faq.html
Вы также можете найти FAQ для более поздних версий.
Обратите внимание, что sbt console-quick
загружает консоль без зависимостей.
В более поздних версиях sbt (0.12 и новее) должно быть достаточно:
fork in run := true