0

1) バンドル Aは、バンドル C から取得したパッケージ com.X を再エクスポートします。


2) バンドル B は、パッケージ com.X をエクスポートします。


3) バンドル D は、A と B の両方に依存するようになりました。


バンドル D はどこからパッケージ com.X を取得しますか?

4

1 に答える 1

1

最初の質問は、同じパッケージを定義する 2 つのバンドルがある理由です。これは分割パッケージと呼ばれ、シャドーイングで問題が発生する可能性があるため、推奨されません。

ランタイムでは、パッケージの依存関係を解決するためにバンドル A または B のいずれかが選択されますが、これImport-Packageを直接制御することはできません (エクスポートに必須プロパティを設定することで、Eclipse の担当者が行うようなさまざまなトリックを実行できます)。

Require-Bundleマージされたパッケージにcom.Xなるため、タイプのスーパーセットが表示されますが、タイプが重複している場合はどうなるかわかりません。

最も簡単なことは、分割パッケージを最初から避けることです。

于 2009-09-26T11:12:49.257 に答える