scala - 动态加载 Scala 编译器插件

标签 scala scala-2.10 scala-compiler

根据this post为了创建 Scala 编译器插件,需要将插件编译成 jar,然后指定对 jar 的引用作为命令行参数,或者将 jar 放在 $SCALA_HOME/misc/scala-devel 中/插件。

我需要在运行时使用 scala 编译器 API (scala.tools.nsc) 调用编译器。 是否可以在调用编译器之前在运行时动态地使用编译器插件?

最佳答案

我不完全确定在运行时加载它是什么意思,但我假设您还打算在运行时调用编译器并为其提供该插件。

在这种情况下,是的,这是可能的。您可以看一下RunPlugin.scala以 alacs 测试套件为例。该项目不再真正活跃,但它提供了用于额外检查的编译器插件,这些插件也通过涉及上述类的测试套件进行测试,以便使用选定的插件进行运行时编译。

关于scala - 动态加载 Scala 编译器插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14394207/

相关文章:

scala - Scala trait 中的抽象私有(private)字段

scala - 如何从 M7 中的类型获取 typeArgs?

scala - 如何在使用 2.10.1 构建的项目中使用使用 2.9.2 构建的库?

scala - 值 isDefinedAt 不是 play.api.mvc.SimpleResult 的成员

scala - 在 Scala 编译器处理的特征中,final val 是如何定义的?

scala - 为什么用模式匹配收集不能缩小特定类别?

scala - 使用 deb 文件和 SBT 为生产设置日志记录/配置

scala - Scala 类型 (=> A) => O 的目的

Scala HttpPost - 如何传递身份验证参数

java - 如何在运行时从 java 程序编译并运行 scala 代码?