p2のdropinsフォルダ

Ganymede M6からプラグインの管理(インストール/アンインストール)がp2に移行しました。プラグイン管理UIが一新され、Update Siteの仕様も変更になっています。またp2では、Update Site経由だけでなく、従来のように手動で.jarファイルを$ECLIPSE_HOME/dropinsフォルダに配置することによりプラグインをインストール可能です。以下にp2の基本情報があります。

http://wiki.eclipse.org/Equinox_p2_Getting_Started

そこでEclipse IDE for Software Architects and Modeling | Eclipse Packagesを使って、p2のdropinsフォルダに、プラグインを手動でできるかどうか調べてみました。その結果、以下のような配置は全て正しく認識され、プラグインをインストールすることができました。結局、上記wikiの記述通りという結果になりました。新たに判明した点を強いて挙げるならば、以下のようにうまくいく配置パターンを同時に組み合わせても大丈夫、といったところでしょうか。

eclipse/
  dropins/
    net.sourceforge.dynamicgmf.0.1.2.jar
    eclipse/
      features/
        org.eclipse.emf.compare_0.8.0.v20080404851/*
      plugins/
        org.eclipse.emf.compare_0.8.0.v20080404851.jar
    emft_mint/
      eclipse/
        features/
          org.eclipse.emf.mint_0.7.0.v200805070024/*
        plugins/
          org.eclipse.emf.mint_0.7.0.v200805070024.jar

正しく認識されるパターン

dropinsフォルダにプラグインを手動で配置する場合、以下のパターン(の組み合わせ)であればうまくプラグインを認識してくれるようです。

パターン1:featureのない.jarをdropins直下に配置
eclipse/
  dropins/
    net.sourceforge.dynamicgmf.0.1.2.jar
パターン2:dropins/eclipse以下に配置
eclipse/
  dropins/
    eclipse/
      features/
      plugins/
パターン3:dropins/${AS_YOU_LIKE}/eclipse以下に配置

このパターンを使うとプラグイン群をフォルダごとに分けて配置できますね。${AS_YOU_LIKE}/以下に"eclipse"フォルダを設けないといけないところが要注意。

eclipse/
  dropins/
    emf/
      eclipse/
        features/
        plugins/
    gef/
      eclipse/
        features/
        plugins/

正しく認識してくれなかったパターン

以下のように配置した場合、プラグインを認識してくれないようです。

  • dropins/${AS_YOU_LIKE}/以下に配置
  • dorpins/${AS_YOU_LIKE}/${AS_YOU_LIKE}/eclipse/以下に配置
  • dropins/eclipse/plugins/以下に、featureのないプラグイン.jarファイルを配置
  • dropins/${AS_YOU_LIKE}/eclipse/plugins/以下に、featureのないプラグイン.jarファイルを配置

まとめ

このエントリで、dropinsフォルダに.jarを配置してもプラグインを認識してくれない症状を体験しましたが、このエントリで紹介した方法でEclipse SDK 3.4M7を半手動でインストールした場合でした。Eclipse Packages | The Eclipse Foundation - home to a global community, the Eclipse IDE, Jakarta EE and over 350 open source projects...からインストールしたGanymedeでは(M6だろうがM7だろうが)、featureのないプラグインでも.jarファイルをdropinsフォルダに配置すれば正しく認識してくれました。