第1回:Eclipseとプラグイン (4/4)

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
Eclipse実践プラグイン開発
第1回Eclipseとプラグイン
第2回プラグインの配布とインストール
第3回基本的なGUIコンポーネントの利用
第4回JFaceのGUIコンポーネント
第5回メニューとポップアップ・メニューの拡張
第6回ビューの拡張
第7回エディタの拡張
第8回パースペクティブの拡張
第9回プロパティと設定の拡張
Eclipseが提供するBIとレポーティングツール
第1回インストールからはじめるEclipse BIRT
第2回データベースのデータをレポートに出力しよう
第3回レポートを作成しよう
第4回スクリプティング機能・Tomcatでのプレビュー・レポートエンジンを使用したレポート出力
Eclipse3ではじめるJava Webアプリケーション開発
第1回Eclipse3の概要とインストール
第2回Eclipse3の基本機能
第3回Eclipse3の基本操作を憶えよう
第4回Eclipseの便利な機能
第5回Webアプリケーションの開発(1)〜JSP作成〜
第6回Webアプリケーションの開発(2)〜サーブレットの作成〜
第7回データベースの利用
第8回フレームワークの利用
第9回O/Rマッパーの利用
第10回JUnitの利用
第11回Antの利用
第12回CVSの利用(1)
第13回CVSの利用(2)
Eclipse WTPによる標準開発ツールの提供
第1回Eclipse WTPの概要とインストール
第2回Eclipse WTPでHello World
第3回Eclipse WTPのDB系ツールを使う
第4回Eclipse WTPのエディタとその他のツール

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored