たぷつきません

おなかがでてきた。もうたぷついてるやん。

プラグイン開発で、はまりにはまった

 半日以上 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