はじめに
Eclipseにはいろいろ便利なプラグインがあり、Javaの開発環境として非常に普及していますが、そのプラグイン自体の開発方法はまだ書籍も少なく、ネットにも情報が少ないのが現状だと思います。そこで本稿では、「Web Services経由でGoogle検索を行うEclipseプラグイン」の作成を通じて、Eclipseプラグイン開発の基本的な流れを紹介したいと思います。
さて、前回から相当時間がたってしまいました。それに伴って開発環境もいろいろバージョンがあがってしまいましたので、再度開発・稼動確認環境を整理しておきます。
過去の記事
対象読者
- Eclipseプラグインの開発に興味がある方
必要な環境
今回は以下の環境で開発・確認を行っています。
OS | Windows Vista Home Premium |
Javaのランタイム環境 | JRE1.5.0_09 |
プラグインの開発環境 | Eclipse3.2.2 |
デバッグログの制御 | Log4j |
Web Servicesのランタイムライブラリ | Apache Axis |
また、今回作成するプラグインはGoogle Web APIsを使用します。『Google SOAP Search API (beta)』にアクセスし、Google Web APIs Developer's Kitのダウンロードと、検索時に必要になるキーコードを取得しておいてください。このGoogle Web APIs Developer's KitにはGoogle Web APIsのライブラリとwsdlファイルが格納されています。
Google SOAP Search API
ユーザーインターフェイス部分を作成する
さて前回はGooge Web APIsを使用してGoogle検索を行うcoreのプラグインを作成しました。引き続きユーザーインターフェイス部分を作成していきたいと思います。今回作成するプラグインは「nu.mine.kino.plugin.google.ui」です。
プラグインプロジェクトを作成する
Eclipseのウィザードで[プラグイン開発]-[プラグイン・プロジェクト]を選択します。
- プラグイン・プロジェクトのページ
- [プロジェクト名]は「nu.mine.kino.plugin.google.ui」。
- [ターゲット・プラットフォーム]のEclipseのバージョンは「3.2」。
- プラグイン・コンテンツのページ
- [プラグインのプロパティ]はそのまま。
- [プラグイン・オプション]は、[アクティベーターを生成]はチェック、[このプラグインをUIに追加]もチェックします。
- [アクティベーター]は「nu.mine.kino.plugin.google.ui.GooglePlugin」。
- リッチ・クライアント・アプリケーションの作成は[いいえ]を選択します。
[終了]をクリックします。以上でプラグインのプロジェクトが作成できました。
plugin.xml、MANIFEST.MFを記述する
作成したプラグイン・プロジェクトに設定を追加していきます。作成したプロジェクトの「META-INF/MANIFEST.MF」をマニフェストエディタで開きます。依存関係タブを開いて、以下のプラグインを必須プラグインに追加しておきます。
- org.eclipse.ui
- org.eclipse.core.runtime
- org.eclipse.jface.text
- org.eclipse.ui.workbench.texteditor
- nu.mine.kino.plugin.log4j
- nu.mine.kino.plugin.google.core
そのほか、プラグイン名やバージョンなど多少変更していますが、結局「MANIFEST.MF」は次のようになりました。
Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: nu.mine.kino.plugin.google.ui Bundle-Version: 0.1.0 Bundle-Activator: nu.mine.kino.plugin.google.ui.GooglePlugin Bundle-Localization: plugin Require-Bundle: org.eclipse.ui, org.eclipse.core.runtime, org.eclipse.jface.text, org.eclipse.ui.workbench.texteditor, nu.mine.kino.plugin.log4j, nu.mine.kino.plugin.google.core Eclipse-LazyStart: true Bundle-Vendor: %providerName