如何在 sbt 项目中重用 Ammonite REPL 的 sc 文件?

How to reuse Ammonite REPL's sc files in a sbt project?

我有一些可重复使用的 Ammonite REPL 的 sc 文件,用于某些 Jupyter Scala 笔记本。

现在我正在创建一个从 sbt 构建的独立应用程序。我希望我可以在 sbt 项目中重用这些现有的 sc 文件。

是否可以为 Jupyter Scala/Ammonite REPL 和 sbt 项目共享这些 sc 文件?如何使 scala 源代码和 sc 文件一起编译?

我创建了 Import.scala,一个支持魔法导入的 Scala 编译器插件。

Import.scala 的帮助下,.sc 文件中的代码片段可以使用相同的语法加载到 sbt 项目中的 Scala 源文件中作为 Ammonite 或 Jupyter Scala:

给定一个 MyScript.sc 文件。

// MyScript.sc
val elite = 31337

魔术将其导入另一个文件。

import $file.MyScript

有效。

assert(MyScript.elite == 31337)