0

OSGi アプリケーションがあります。

バンドル A --> 10 個の jar ファイルを参照するだけで、これらの 10 個の jar ファイルのすべてのパッケージをエクスポートして、ランタイム呼び出しを満たします。

バンドル B --> バンドル A からエクスポートしたパッケージをインポートします。ランタイム OK。

しかし、バンドル B をビルドするために Maven を使用すると、疑問が生じました。バンドル B の pom.xml の一部を次に示します。

<dependency>
  <groupId>com.mycom.id</groupId>
  <artifactId>com.mycom.BundleA</artifactId>
  <version>${version.range}</version>
  <scope>provided</scope>
</dependency>

artifactID: Bundle A を参照すると、ビルドに失敗しました。Maven は、プロジェクト内の jar ファイルを参照できません。別のプロジェクト内にある jar ファイルを参照する方法が見つからないため、ビルド時にこの依存関係の問題を修正するソリューションを誰かが提供できますか?

4

2 に答える 2

1

バンドルAの依存関係として10個のjarを設定しましたか?その場合、MavenはバンドルAを参照するときに推移的な依存関係を見つけることができるはずです。

于 2012-05-04T07:35:38.957 に答える
1

この方法でコンポーネントをバンドルしないでください。OSGi である jar を別の jar 内にバンドルすることはほとんどお勧めできません。バンドルする場合は、その jar のパッケージをエクスポートしないでください。パッケージを他のバンドルで使用できるようにする必要がある場合、その jar は OSGi バンドルである必要があります。

あなたのアプローチについては、この質問を参照してください。

于 2012-05-04T17:24:34.803 に答える