プラグイン開発で、はまりにはまった
半日以上 dependenciesの問題にはまった。というかdependenciesはちゃんと設定しているのに、実行時やエクスポート時にClassNotFoundが発生していた。
はまりポイントだったのは、そのプラグインプロジェクトがjarを含んでいるということだった。
普通はjarを含まないで自身のソースコードからできたクラスパスが自動選択されている。よって、プラグインエディタのRuntimeページの右下のClasspathの欄は空になっている。そこにある説明は以下のとおりなので、自動的にルートがクラスパスになることが分かる。
Specify the libraries and folders that constitute the plug-in classpath. If unspecified, the classes and resources are assumed to be at the root of the plug-in.
で、今回はそのプラグインの中のコードからjar内のクラスも参照しているので、ここに、jarを追加する必要があったわけだが、単純に以下のようにするとプラグイン内のクラスがClassNotFoundになってしまうのだった。
正しくは以下のように、ルート(ドット)も加えないとならない。
ここに気づくのにかなりの時間を要してしまった。build.propertiesのbin.includesには、ちゃんと ドット も含んでいたが、こちらには気付かなかった。orz
しかもプラグインエディタのUI的には、Addボタンで、ドット は選択できないし、Newボタンでは、初期値が以下のような画面だから尚更気付きにくい。
実は、普通は自動的に自身のクラスパスからjarを起こして入れてくれるらしいので、なにかの拍子でjarを含めないようにしてしまったんじゃないかなー。自爆じゃん。orz