私はOSGiフレームワークを学んでいます。バンドルが .class ファイルとマニフェスト ファイルで構成されていることがわかりました。ここで、2 つのバンドル A と B があり、バンドル B がバンドル A のサービスに依存しているとします。したがって、バンドル B をコンパイルしている間、バンドル A のサービス クラスをバンドル B のクラスパスに保持するか、バンドル B 内に (バンドル A のサービス) を保持して、コンパイラがコンパイルできるようにする必要があります。そうしている場合、モジュール性がどのように達成され、2つのバンドルがどのように独立しているか. 助けてください。ありがとう
2 に答える
6
インターフェイスを使用してください!!
あなたはインターフェースにありますI
。クラスは、コンパイル時と実行時の両方でA
実装するため、クラスに依存します。I
クラスは、OSGi サービスとして取得B
する のインスタンスを使用します。I
したがって、コンパイル時と実行時にB
依存します。I
したがって、どちらA
もB
お互いの直接の知識はありません。実装コードは非表示になり、インターフェイスのみが表示され、共有されます。そして、それがモジュール性を達成する方法です。
于 2012-07-10T14:36:37.483 に答える
0
依存関係の管理を手動で行うと、エラーが発生しやすくなります。依存関係を管理するには、maven を使用することをお勧めします。さらに、maven-bundle-pluginIn は、コンパイル時にインポート/エクスポート バンドルをチェックするのに役立ちます。一方、maven-eclipse-plugin は、pom の依存関係の構成に従って Eclipse プロジェクトを生成するのに役立ちます。
于 2012-07-10T13:53:03.287 に答える