根据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/