Pluginのテストを自動化するには(その7:拡張ロケーションを使ってデプロイする)

今回テストプラグインのデプロイをする方法を考えてみたんですが、直接テストをするためにEclipseのインストールロケーションにプラグインを展開するのはためらわれます。テストの初期化時に毎回100MB近いEclipseの配布ファイルを解凍し、テストプラグインをその中に放り込むのも考えたのですが、効率が悪過ぎでしょう。できれば拡張ロケーションを使えるのが一番よさそうです。プラグインの相性などもあるので、インストールロケーションへの配置をした上でテストをしないと意味がないという声もありそうですが、既にEclipseのサイトからは5種類に渡る配布があるわけですし、YoxosやらPulseやら自由にカスタマイズできる配布サイトもあります。要するに、インストールされているEclipseの状態は、特定できない訳です。

ちょっと前に拡張ロケーションを削除するには - Fly me to the Juno!という題で拡張ロケーションを手で削除する方法を書きました。今回は手で操作するのは無理があるので、方法を探しに探しました。結局見つけられたのはEclipseのHelpにも書かれている方法なのですが、なかなか見つけられなかったです。ところでドキュメントを検索するのって骨折れませんか?だったらソースから逆に辿って…。っていうのがいつものパターンです。特にJavaDocとかあってもなぁ。書いてある事は結局中見てみないと良く分からないことばっかだぉとか思うんですが、多分そういう人の方が少数派なんすかね。基本コメントを見なくてもわかるコードを書くのが信条です。

拡張ロケーションを追加するときはこんな感じのコマンドを打ちます。

eclipse -application org.eclipse.update.core.standaloneUpdate -consolelog -nosplash -command addSite -from /tmp/build/I.Build/eclipse

注意点は3点です。

  • eclipseランチャを使って起動しているので、javaやらstartup.jarを指定していません。後述するヘルプではその辺もきっちり指定していますが、素の必要はないです。
  • Windowsで、かつEclipse3.3以降を使っている場合はeclipsecランチャがあるので、そっちを使った方が幸せかもです。
  • -fromで指定しているパスが拡張ロケーションです。.eclipseextensionファイルを作るのを忘れずに。

逆に拡張ロケーションを削除する時はこんな感じのコマンドを打ってください。

eclipse -application org.eclipse.update.core.standaloneUpdate -consolelog -nosplash -command removeSite -to /tmp/build/I.Build/eclipse

その他この『org.eclipse.update.core.standaloneUpdate』というアプリケーションはインストールされているフィーチャーの一覧表示、フィーチャーのインストール、アンインストール、有効化、無効化など、『Manage Configuration』ダイアログでできる事が一通りできるようです。

参考にした拡張ロケーションやらフィーチャーをほげほげする時のヘルプです。
Eclipse 3.3の時の拡張ロケーションほげほげ
Eclipse 3.2の時の拡張ロケーションほげほげ