2

根据这篇文章为了创建一个Scala编译器插件,需要将插件编译成一个jar,然后要么指定对jar的引用作为命令行参数,要么将jar放在$SCALA_HOME/misc/scala-devel/plugins.

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

4

1 回答 1

2

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

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

于 2013-01-18T07:28:58.477 回答