使用sbt从代码启动scala repl循环

时间:2011-12-11 01:31:13

标签: scala sbt

我正在尝试启动一个scala repl循环(使用breakif),我正在建立/运行SBT,我试图按照常见问题解答中的建议,但无法让它工作。

有人可以提供MyType的示例,该MyType用于配置所描述的设置,“MyType是一个代表性的类,应该包含在解释器的类路径及其应用程序类加载器中”

https://github.com/harrah/xsbt/wiki/FAQ(在“我如何在代码中使用Scala解释器?”下)

使用scala 2.9.1和sbt 0.11

由于

1 个答案:

答案 0 :(得分:1)

常见问题链接指向background discussion,其中演示了MyType的实际使用方式,

用法:

val settings = new Settings()
settings.embeddedDefaults[MyType]

内部SBT:

def embeddedDefaults[T: Manifest] {
  val loader = implicitly[Manifest[T]].erasure.getClassLoader
  explicitParentLoader = Some(loader) // for the Interpreter parentClassLoader
  getClasspath("app", loader) foreach { classpath.value = _ }
  getClasspath("boot", loader) foreach {
     bootclasspath.value = settings.bootclasspath.value + File.separator + _
  }
}

所以MyType仅用于帮助SBT找到合适的类加载器。据推测,您可以选择MyType作为您希望从解释器中获得的项目中的任意类。这基本上是FAQ所说的: MyType是一个代表类,应该包含在解释器的类路径和应用程序类加载器中。