RCP アプリケーションを作成しています。p2 update 機能を提供する予定です。
たとえば、A、B、C、D の 4 つのプラグインがあります。
プラグイン A と B は、私の RCP アプリケーションのコア機能を表しています。com.myorg.feature.core という名前のフィーチャーを作成しました。feature.xml 内のプラグイン タブで、プラグイン A と B を追加しました。
RCP アプリケーションの製品ファイルに依存関係として機能 com.myorg.feature.core を追加しています。その後、製品ファイルを使用して RCP アプリケーションをエクスポートします (ここでの製品は機能ベースの製品です)。
これで、さらに 2 つのフィーチャが作成されました。
com.myorg.feature.featureC
com.myorg.feature.featureD
これらは私の RCP アプリケーションのオプション機能であるため、インストールするかどうかをユーザーに選択してもらいます。したがって、ユーザーは、この機能がリストされる新しいソフトウェアのインストール オプションを選択します。
私が直面している問題は、これらのプラグイン C & D が特定のサードパーティ ライブラリ (BIRT、NATTABLE など) を使用していることです。したがって、featureC または featureD をビルドして更新サイトに配置し、それらをアプリケーションにインストールしようとするたびに、次のような依存関係のエラーが表示されます。bundle missing: org.eclipse.birt.core
featureC の feature.xml に戻ります -> plugins タブ -> org.eclipse.birt.core を追加し、フィーチャーを再度ビルドします。しかし、私のRCPアプリケーションは、バンドルが見つからないというエラーでインストールに失敗することが何度かありました。
必要なすべてのバンドルを最初から特定できるメカニズムはありますか? RCP アプリケーションのアップデートまたは新しいインストール可能なユニットを起動する正しい方法はありますか?