PDT2.1のdropinsにSubclipseを入れようとしてはまった件

続きがあります。

PDT2.1がどうにもバギーな件
[id:kanonji:20090911:1252697383]

PDT2.1 でSubclipseを使うため、せっかくなのでdropinsフォルダを使ってみることにしました。
なかなかうまく入らなかったので、後々のためにメモしときます。
なお、 PDT2.1 は eclipse3.5(Galileo)ベースなので、たぶん eclipse3.5 でも同じだと思います。

featuresフォルダとpluginsフォルダの両方ある場合は、dropins/${AS_YOU_LIKE}以下に配置

パターン3:dropins/${AS_YOU_LIKE}/eclipse以下に配置

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

eclipse/
  dropins/
    emf/
      eclipse/
        features/
        plugins/
    gef/
      eclipse/
        features/
        plugins/
2008-05-15 - kojihashiの日記

dropinsに入れる場合、プラグインの構造によって置き方が変わります。
Subclipseではfeaturesフォルダとpluginsフォルダの両方ある構造なので、dropinsフォルダに直置きは出来ません。
管理しやすくするために、dropinsフォルダにsubclipseフォルダを作って、そこに置くことにしました。
上記サイトでは、自分で作ったフォルダの中に、eclipseフォルダが必要と書いてますが、これが逆にあると認識されませんでした。
引用はeclipse3.4での話なので、たぶんeclipse3.5になって動きが変わったということかもしれません。

一度dropinsに配置したプラグインのフォルダ名を変えるには一手間必要

たとえば dropins/foo にプラグインを置いたとして、やっぱり dropins/bar にしたくなった場合です。
eclipseを終了して、fooをbarにリネームして、eclipseを起動したら、そのプラグインは認識されませんでした。
-clean引数なども効果がありません。


解決方法は、いったんfooフォルダをdropinsフォルダの外に出した状態でeclipseを起動し、プラグインを消したことにします。
そしてeclipseを終了し、改めてbarフォルダにリネームしたものをdropinsフォルダに置いてから起動します。
dropinsフォルダ内でリネームだけして、fooは削除されbarが追加されたと認識してくれても良さそうなものですが、だめみたいですね。
なお、一度そのプラグインが削除された事になるので、設定が引き継がれない等のトラブルが起こるかもしれません。*1

ところでdropinsフォルダって?

eclipse3.4から Equinox p2 フレームワークという、プラグインのインストール/更新の仕組みが導入されました。
dropinsフォルダは、そのp2を使ったプラグインインストールで、その中でも手動でのインストール用のフォルダです。
eclipse内のGUIでのプラグイン管理もp2によって刷新されてますが、これはdropinsフォルダではなく別の場所にインストールします。
たぶん、従来通りeclipse本体のfeatures/pluginsに入れてるんだと思います。

*1:これは試していません