1

Java自体によって提供される「org.ietf.jgss」などのバンドルへの依存関係を宣言するバイナリ形式のOSGiバンドルをいくつか取得しました。P2 はこれらの依存関係を検出し、後で P2 director アプリケーションを使用して製品をインストールしようとすると、これらのパッケージを提供するバンドルがないため、インストールは失敗します。しかし、P2 製品ビルドを使用すると、使用できる完全にインストールされた製品が得られます。

私の問題は、アプリケーションのバリエーションごとに製品ファイルを作成してビルドしたくないということです。そこで、P2 ディレクタを使用してターゲット システムに製品をインストールするために、すべての P2 リポジトリをコピーするアプローチを試みました。

では、Java によって提供されるパッケージへの依存関係を処理する方法と、Java 自体によって提供される場合にこれらのパッケージを無視するように P2 に「説得」する方法を教えてください。

助けてくれてありがとう。

4

1 に答える 1

1

Javaによって提供されるパッケージ、またはOSGiがこれを呼び出す「実行環境」は、定義上、java。*で始まるパッケージに含まれており、明示的なインポートステートメントは必要ありません。

仮想マシンがjava。*で始まらない追加のパッケージを提供する場合は、システムバンドルを介してそれらを利用可能にするか(フレームワークがそれらを利用可能にし、これらのパッケージの明示的なインポートを解決できるようにする)、またはブート委任を使用できます(つまり、これらのパッケージは、明示的にインポートされていなくても、魔法のように利用できます)。

私はあなたの最初の文で少し混乱しています。バンドルが別のバンドルへの依存関係を宣言している場合、JVMはバンドルを提供しないため、このバンドルをJava自体でどのように提供できますか?

于 2010-04-19T10:19:16.533 に答える