S-JIS[2013-01-15/2013-09-03] 変更履歴

Eclipseプラグイン 更新サイト

Eclipseプラグイン開発の更新サイトの作り方。


更新サイトとは

Eclipseでは、更新サイトを用意しておくと、そのサイトからフィーチャーをダウンロードしてプラグインをインストールすることが出来る。

更新サイトを作るには、まず、ワークスペース上に更新サイトプロジェクトを作る。
そこにフィーチャーを登録してビルドするとjarファイル等が作られる。
それをサイトにアップロードしてhttpでダウンロードできるようにすればよい。

(実験用に)ローカルファイルのままダウンロードすることも出来る。


更新サイトプロジェクトの作成

Eclipse3.7で更新サイトプロジェクトを作成する手順。

  1. メニューバーの「ファイル(F)」→「新規(N)」→「その他」で「新規」ダイアログを開く。
  2. プラグイン開発/更新サイト・プロジェクトを選択し、「次へ」。
  3. プロジェクト名(例:example-site)を入力して、「完了」。

これでワークスペース上にプロジェクトが作られ、以下のようなファイルが生成される。


更新サイトのマニフェストエディター

生成されたsite.xmlをダブルクリックすると、マニフェストエディターが開く。

更新サイト・マップ

カテゴリーやフィーチャーを追加できる。
また、ビルドもここから行う。

アーカイブ

site.xml

site.xmlの中身をテキストエディターで直接編集できる。


フィーチャーの追加

マニフェストエディターの「更新サイト・マップ」タブでカテゴリーやフィーチャーを追加できる。

カテゴリーは、いくつかのフィーチャーをまとめておくディレクトリーのようなもの。
「新規カテゴリー」ボタンでカテゴリーを追加できる。
追加したら、右側のカテゴリープロパティーでカテゴリーIDやカテゴリー名・説明を入力する。
削除したい場合は、一覧からカテゴリーを右クリックして「除去」を実行する。

フィーチャーを追加する際には、追加先となるカテゴリーを選択してから「フィーチャーの追加」ボタンを押す。
「フィーチャーの選択」ダイアログが出てフィーチャー一覧が表示されるので、追加したいフィーチャーを選択する。
(一番上のテキストエリアにフィーチャー名の一部を入れると一覧を絞ることが出来るが、ワイルドカードを付けて「*検索文字列」で検索する必要がある)
フィーチャーは、更新サイトプロジェクトと同じワークスペース内にあるものが選択肢に入っているはず。


カテゴリー定義

site.xml上でカテゴリー定義をするだけでなく、フィーチャープロジェクトでcategory.xmlを定義することが出来る。[2013-06-21]
両方定義しないと、実際にEclipseの「新規ソフトウェアのインストール」でインストールしようとしたときに「カテゴリー化された項目がありません」というメッセージが出て、プラグイン(フィーチャー)を選択できない。
と思ったのだが、カテゴリーが表示されるかどうかとは関係無さそう?[2013-09-03]

「カテゴリー化された項目がありません(There are no categorized items)」というメッセージが出た場合、「項目をカテゴリー別にグループ化(Group items by category)」のチェックを外すと選択できるようにはなるが。
ユーザーが操作しないといけないのは(説明を書くのが)面倒(苦笑)

site.xmlでのカテゴリー定義(カテゴリーID)とcategory.xmlのカテゴリー定義は同じもので良いようだ。


ビルド

カテゴリーやフィーチャーを追加したら、ビルドすることによってフィーチャーおよびプラグインのjarファイルが生成される。
マニフェストエディターの「更新サイト・マップ」タブにある「すべてビルド」ボタンを押すとビルドされる。

ビルドすると、以下のディレクトリーおよびファイルが作られる。

ビルドに関するエラーやバグについて


site.xml上でカテゴリーを定義すると、Eclipseの「新規ソフトウェアのインストール」でインストールするときにカテゴリーが表示される。[2013-09-03]
何度かビルドしても、カテゴリーの情報は消えない。

だが、手動でfeatures, pluginsやartifacts.jar, content.jarを削除してからビルドすると、(site.xml上にカテゴリーの定義は残っていても)生成されたファイルからはカテゴリー情報が消えてしまう!
(ビルドする度にjarファイルが増えていく(古いファイルが消されず残る)ので、(手動でもいいから)消したいんだよね^^;)

site.xml上でカテゴリーごと定義を消して再度同じ定義をすると、次にビルドしたときにまたカテゴリー情報が生成されるようになる。


ローカルサイトからのインストール

ビルドしたディレクトリーからEclipseにインストールすることが出来る。

  1. プラグインを追加するEclipseを起動する。
  2. メニューバーの「ヘルプ(H)」→「新規ソフトウェアのインストール」で「インストール」ダイアログを開く。
  3. 「追加」ボタンを押して「リポジトリーの追加」ダイアログを開く。
  4. リポジトリーの情報を入力する。
    項目 説明
    名前 リポジトリーの名前を適当に付ける。 example-site
    ロケーション 更新サイトの場所。
    今回はローカルサイトなので、ワークスペース上の更新サイトプロジェクトのディレクトリーを指定する。
    file:/D:/workspace/example-site/
  5. 後は「次へ」を押していくだけ。

ウェブサイトからのインストール

ビルドしたディレクトリー(.projectを除く)をそのままウェブサイトにアップロードしておけば、そのURLをロケーションに指定することでウェブサイトからインストールすることが出来る。

例:自作DMDLエディタープラグインの更新サイト「http://hishidama.github.com/dmdl-editor-plugin/site/


GitHubを更新サイトにする方法

GitHub Pagesを使うと、GitHubリポジトリーをEclipseプラグインの更新サイトにすることが出来る。[2013-01-16]

更新サイトプロジェクトgitリポジトリーにして、pushするだけでダウンロードファイルを新しくする事が出来る。

  1. ローカルマシンのEclipseワークスペース上で更新サイトプロジェクトを作成する。(例:プロジェクト名=plugin-site)
  2. 更新サイトプロジェクトを(ローカルの)gitリポジトリーにして、gh-pagesブランチを作成する。
    $ cd ワークスペース/plugin-site
    $ git init
    $ git branch gh-pages	←gh-pagesブランチを作成
    $ git checkout gh-pages	←gh-pagesブランチに移動
  3. GitHub上で新しいリポジトリーを作成する。(例:リポジトリー名=eclipse-plugin-site)
  4. ローカルリポジトリーとGitHubのリポジトリーを紐付ける。(例:GitHubユーザー名=hishidama)
    $ cd ワークスペース/plugin-site
    $ git remote add origin git@github.com:hishidama/eclipse-plugin-site.git
  5. 更新サイトプロジェクトの各種設定(フィーチャーの追加)を行い、ビルドする。
  6. ビルドして出来たファイルをローカルリポジトリー上でコミットする。
    $ cd ワークスペース/plugin-site
    $ git add .
    $ git commit
  7. GitHubへpush(送信)する。
    $ git push -u origin gh-pages	←初回のみ
    $ git push                   	←2回目以降

これで、Eclipseの「新規ソフトウェアのインストール」で「http://ユーザー名.github.com/リポジトリー名/」(例:「http://hishidama.github.com/eclipse-plugin-site/」)を指定すると、プラグインがインストールできる。


Eclipseプラグインへ戻る / Eclipseへ戻る / 技術メモへ戻る
メールの送信先:ひしだま