我正在开发一个scala编译器插件。编译器插件在“重新检查”阶段之后运行。它分析了AST(抽象语法树)
并生成一些输出。在这个插件中,我使用System.loadLibrary
我计划在Eclipse Scala IDE中使用编译器插件。我在ScalaIde首选项中设置了-XPlugin
参数。
当我在Eclipse中编译scala源文件时,在refchecks
阶段之后调用插件并正常工作(生成所需的输出)
但是,当我对源文件进行更改并进行编译时,我收到以下错误。
The SBT builder crashed while compiling your project.
Native Library scalaz3.dll already loaded in another classloader.
看起来ScalaIDE会生成另一个类加载器,并尝试在同一进程中加载插件类。
我在编译器插件测试用例中遇到了同样的问题。但是,我使用fork in Test := true
中的build.sbt
修复了它。
但我对如何在eclipse scala IDE中修复它一无所知。
这里有一些相关的帖子(尽管与eclipse scala ide无关):