TOP設計・移行・活用> マニフェスト・ファイルplugin.xml
Eclipse実践プラグイン開発
Eclipse実践プラグイン開発

第1回:Eclipseとプラグイン
著者:ビーブレイクシステムズ  大森 洋行   2005/7/4
前のページ  1  2  3  4
マニフェスト・ファイルplugin.xml

   マニフェスト・ファイルplugin.xmlは、プラグイン・ランタイム・クラスの情報やJavaクラスを格納しているJarファイルの情報、依存しているプラグインの情報、拡張した機能、他のプラグインに公開する拡張ポイントの情報を、プラグインの管理を行うEclipseプラットフォームのランタイムに教える役割を担っています。マニフェスト・ファイルplugin.xmlの要素と属性について、図13と表2を使用して説明します。
plugin.xmlの要素の構造
図13:plugin.xmlの要素の構造

要素名 属性名 説明
plugin    プラグインの定義
id プラグインのID
(命名法はJavaのパッケージの命名法と同じです。例えば、jp.co.thinkit.eclipse.hello)
name プラグインの表示可能な名前
version プラグインのバージョン番号
provider-name プラグインを開発した会社名や開発者の名前
class プラグイン・ランタイム・クラスの完全修飾クラス名
(org.eclipse.core.runtime.Pluginクラスのサブクラス)
runtime プラグインを構成するライブラリの指定
library    ライブラリの指定
name ライブラリのパス
type 指定したライブラリに実行可能なコードまたはリソースだけのどちらが含まれるかを指定
("code"か"resource"のみ指定できます)
export    ライブラリのどの部分がエクスポートされるかの指定
name エクスポートするクラスの名前規則を指定(以下の値を指定することができます)
  • * - すべてをエクスポート
  • package.name.* - 指定したパッケージのすべてのクラスをエクスポート
  • package.name.ClassName - 指定したクラスをエクスポート
requires 依存しているプラグインの指定
import    依存しているプラグインの指定
plugin 依存しているプラグインのID
version バージョンの指定
match バージョンのマッチング規則(version属性が指定されていない場合は、無視されます)
  • perfect - 指定されたバージョンと正確に一致している必要があります
  • equivalent - 指定されたバージョンかそれ以上のサービス・レベルでなければなりません(メジャーおよびマイナー・バージョン・レベルは指定されたバージョンと同じでなければなりません)
  • compatible - 指定されたバージョンと同じ、またはサービス・レベルかマイナー・レベルがそれ以上のレベルでなければなりません(メジャー・バージョン・レベルは指定されたバージョンと同じでなければなりません)
    greaterOrEqual - 指定されたバージョンと同じ、またはサービス、マイナーまたはメジャー・レベルが指定されたバージョン以上である必要があります
export ユーザに依存しているプラグインのクラスを可視にするかどうかを指定(デフォルトは、不可視)
optional この依存性が、厳密に強制されるかどうかを指定
extension-point    公開する拡張ポイントの定義
id 拡張ポイントのID
name 拡張ポイントの表示可能な名前
schema 拡張ポイントのスキーマ仕様を定義しているファイル
extension    拡張する機能の定義
point 拡張する拡張ポイントのID(このプラグインまたは他のプラグインで定義されているextension-point要素のid)
id 拡張のID
name 拡張の表示可能な名前

表2:plugin.xmlの要素と属性

   それでは、既存のプラグインがどのようにplugin.xmlを記述しているか見てみましょう。ここでは、Java開発環境JDT(org.eclipse.jdt.ui)のplugin.xmlを取り上げます。

   はじめに、プラグイン開発・パースペクティブのプラグイン・ビューを表示します(図14)。

プラグイン開発・パースペクティブのプラグイン・ビュー
図14:プラグイン開発・パースペクティブのプラグイン・ビュー

   次に、プラグイン・ビューから「org.eclipse.jdt.ui (3.0.x)」を選択します(図15)。「org.eclipse.jdt.ui (3.0.x)」には、Javaクラスを格納しているJarファイル(jdt.jar)とplugin.xmlがあります。plugin.propertiesファイルは、plugin.xmlで使える定数を定義しています。定数名の前に%を付け("%定数名")てplugin.xmlに記述すると、ランタイムが自動的にplugin.propertiesを読み込み、定数の値に置換します。

「org.eclipse.jdt.ui (3.0.x)」
図15:「org.eclipse.jdt.ui (3.0.x)」

   次に、plugin.xmlをマニフェスト・エディターで表示します。プラグイン・ビューから「org.eclipse.jdt.ui (3.0.x)」 - 「plugin.xml」をダブルクリックします(図16)。

マニフェスト・エディター
図16:マニフェスト・エディター

   マニフェスト・エディターは、「概要」、「依存関係」、「ランタイム」、「拡張」、「拡張ポイント」ページを使用してplugin.xmlを簡単に参照することができますが、今回は「plugin.xml」ページを使用し、plugin.xmlの構造を見てください。

   plugin.xmlの拡張ポイントorg.eclipse.jdt.ui.classpathContainerPage を拡張している部分を見てみると、extension要素に子要素があります。extension要素の子要素の記述方法は、拡張する拡張ポイントによって異なります。

<extension
      point="org.eclipse.jdt.ui.classpathContainerPage">
   <classpathContainerPage
         name="%defaultClasspathContainerPage"
         class="org.eclipse.jdt.internal.ui.wizards.buildpaths.
ClasspathContainerDefaultPage"
         id="*">
   </classpathContainerPage>
</extension>

マークの部分は実際には1行で記述します)

   extension要素の子要素の記述方法を参照するには、マニフェスト・エディターの「拡張ポイント」ページを開き、「拡張ポイント記述を開く」をクリックすると、ブラウザで確認することができます(図17)。また、拡張ポイントの内容なども確認することができます。

「拡張ポイント」ページ
図17:「拡張ポイント」ページ
(画像をクリックすると別ウィンドウに拡大図を表示します)


まとめ

   今回は、テンプレートを使用したプラグインの開発方法と、プラグインを開発するうえで知らなければいけないことであるEclipseのアーキテクチャ、プラグイン・ランタイム・クラス、マニフェスト・ファイルplugin.xmlについて説明しました。

   ポイントは、以下のとおりです。

  • プラグイン開発の大きな流れは、プロジェクト作成・plugin.xml編集・Javaクラス作成
  • プラグインには、プラグイン・ランタイム・クラスとplugin.xmlが必要
  • プラグイン・ランタイム・クラスは、org.eclipse.core.runtime.Pluginのサブクラスで、ランタイムによって管理されている
  • plugin.xmlは、プラグインの情報をランタイムに教える役割を持っていて、extension要素の子要素は拡張する拡張ポイントによって異なる

   今回、Eclipseに組み込む機能を実装するJavaクラスの作成については説明していませんが、拡張ポイントや機能の実装で必要なAPIのボキャブラリを増やしていくことにより、イメージどおりのプラグインを作ることができるようになります(第3回以降に説明します)。

   次回は、プラグインの配布とインストールについて説明します。

前のページ  1  2  3  4


ビーブレイクシステムズ社 大森 洋行
著者プロフィール
ビーブレイクシステムズ社  大森 洋行
中堅システム開発会社にて、データベース検索ソフトの開発・導入コンサルティング・セミナー講師に従事。その現場の中で、Java及びオープンソースを用いたシステム開発は今後のシステム開発の主流になると考え、それらを独学で学ぶ。本格的にそれらを用いた開発に携わるため、ビーブレイクシステムズに入社。現在、データ項目やその流れの分析に重点をおきながら、Javaやオープンソースを用いたシステム開発に携わる。


INDEX
第1回:Eclipseとプラグイン
  はじめに
  プラグイン・プロジェクト
  Eclipseのアーキテクチャ
マニフェスト・ファイルplugin.xml