Top / Eclipse / プラグイン開発のTIPS集 / Eclipse3.1から導入された、新構成のプラグイン

Eclipse3.1から新構成のプラグインになりました。

Eclipseのプラグインですが、3.1からjar化されて配布される形式が導入されました。よく見てみると、プラグイン内の構成も変更されています。例えば

このように新構成の形式にすることで、プラグインのjarは単純なjarファイルとなり、Eclipse以外の環境でもそのままパスを通して使用できるようになりました。つまりEclipse上ではEclipseプラグインなんだけれども、他の環境、例えばWEBコンテナ上ではWEB-INF/libに置くことのできるjarファイルである、というような構成にすることができるわけです。例えばインタフェースだけを格納した新構成のプラグインjarを作成し、サーバでもクライアントでもそのjarを使ってインタフェースを共通に保つ、なんて芸当ができますね。すばらしい。。

作り方

さて、その新構成のプラグインの作り方ですが基本的に、プラグインプロジェクトを作成するときにターゲットバージョンを3.1にして、OSGiバンドル・マニフェストを作成、を選択することが必要みたいです。基本的にそれでOKなんだけど他にもちょっと条件があるみたい。条件、というか制約があるって言うか。。

忘れないうちにメモしておきます。

20070521追記。

上のバグって言ってたヤツ、Eclipse.3.2.xあたりから直ってるみたい。ようするにjarを追加すると、勝手に「.(ドット)」が追加されました。、、んー、昔からこうだったのかな???

さてこの「.(ドット)」って何なのかなと思ってたのですが、ある人に教えてもらいました。これはソースディレクトリ内のソースコードからビルドされたクラスファイルを、プラグイン直下に配置しなさい、という意味になってます。

例えば、ここにドットを追加すると、MANIFEST.MFには

Bundle-ClassPath: lib/log4j-1.2.13.jar,
 . <-これ

が追加され、build.propertiesには

source.. = source/

が追加されます。さらに、ここに nu.mine.kino.plugin.log4j.jar を追加するとMANIFEST.MFには

Bundle-ClassPath: lib/log4j-1.2.13.jar,
 nu.mine.kino.plugin.log4j.jar <-これ

が追加され、build.propertiesには

source.nu.mine.kino.plugin.log4j.jar = source/

が追加されます。んでこの意味はsource内のクラスファイルはjarにして(ファイル名はnu.mine.kino.plugin.log4j.jar)プラグイン直下に置け、ということのようです。これをふまえると

source.. = source/

の意味はsource内のクラスファイルはそのままでプラグイン直下に置け、という意味になり、上で述べてたようなクラスファイルが裸で配置されて気持ち悪いという状態になります。

よってココにjar名を書いておいてbuild.propertiesでディレクトリとの紐付けを行っておけば*2、unpackするプラグインもクラスファイルを裸で置かないで済むわけです。いやあ、これが正しいですね。

よってドットを追加するのではなく、プラグイン内のクラスファイルをアーカイブするjar名を追加しておく、というのが正しい対応だと言うことがわかりました。


この記事は

選択肢 投票
おもしろかった 3  
そうでもない 2  

Top / Eclipse / プラグイン開発のTIPS集 / Eclipse3.1から導入された、新構成のプラグイン

現在のアクセス:12331


*1 ファイルとして存在してくれないと困る
*2 これは勝手にやってくれる

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS