P2ビルド環境の構築
p2とは
p2とは、アプリケーションやその構成要素であるBundleの配布を楽にするための環境です。p2の特徴を箇条書きすると下記のようになります。
- メタデータリポジトリとアーティファクトリポジトリが分割されている。
- メタデータリポジトリはアーティファクトのインストール、アップデート、アンインストールなどの操作時に、必要なtouchpoint(後述)を定義できます。
- アーティファクトリポジトリは、Bundle、Feature、ランチャなどのbinaryなど、成果物(アーティファクト)が格納されたリポジトリです。どういうバージョンの、どんなファイルが
- Featureだけではなく、BundleやProductの配布も考慮されている。
- productとして配布しているzipがリポジトリになるため、ある環境の中にあるフィーチャーの配布が簡単
- コマンドラインユーティリティが充実している。
- リポジトリ内のミラーリングができる。
- Eclipse 3.6からは開発中必要になったライブラリのパッケージ名を記述すると、該当するBundleがターゲットとして指定されているp2リポジトリ上にあれば、ダウンロードして利用できる。
- p2.infを使って、インストール時に、アプリケーションの起動に必要なファイルのパーミッションの操作など、細かい設定ができる
- この細かい操作の事をtouchpointと呼ぶようです。
- rpmやdebなどのパッケージシステムで行われる事をイメージすると伝わると思います。
- Bundle単位、Feature単位、product単位にp2.infは作成できます。
更新サイトとの違い
Eclipseには以前からフィーチャーの機能を導入したり、更新するための仕組みとして、更新サイトがありました。p2はその後継です。フィーチャーだけではなく、Eclipseベースのアプリケーションの配布もできたり、配布リポジトリのミラーリングも簡単に行う事のできる仕組みです。3.4から導入されたdropinsフォルダも、p2の機能の一つです。p2のリポジトリは複数指定できるので、ライブラリのインポートなんかも簡単にできます。
p2のメタデータを生成するために必要な事
- productのversionのqualifierを外す
テスト用のプラグインを追加する方法
テスト基盤のEclipseのvm引数に下記を追加することで旧ソフトウェア更新サイトを認識させて実行- -Dorg.eclipse.update.reconcile=true
結局p2じゃテスト用プラグインを追加できず。
- directorを使えばテスト基盤のEclipseにテスト用のプラグインを追加できた。

