scala コンパイラ プラグインを開発しています。コンパイラ プラグインは、「refcheck」フェーズの後に実行されます。AST (抽象構文ツリー) を分析し、いくつかの出力を生成します。このプラグインでは、次を使用してネイティブ ライブラリ「scalaz3.dll」をロードしています。System.loadLibrary
コンパイラ プラグインを Eclipse Scala IDE で使用する予定です。-XPluginScalaIde プリファレンスでパラメーターを設定します。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 とは関係ありません)。