2012-05-04 16 views
0

私たちはOSGiアプリケーションを持っています:Mavenのビルドは、別のjarファイル内にあるjarファイルにどのように依存しますか?

バンドルA - > 10個のjarファイルを参照していますが、10個のjarファイルのすべてのパッケージをエクスポートして、ランタイム呼び出しを満たすようにします。

バンドルB - >バンドルAか​​らエクスポートされたインポートパッケージランタイムOK。

しかし、Mavenを使用してバンドルBをビルドすると、質問が表示されました。ここにバンドル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ファイルを参照する方法が見つからないので、誰でもビルド時にこの依存関係の問題を解決するソリューションを提供できますか?

+1

バンドルAは私にとってここでは意味がありません。通常、バンドルBのpom.xmlに10個のjar依存関係を直接追加します。 – yorkw

+0

A内のジャーにアクセスするための他の方法は? – JerryCai

+0

オリジナルのバンドル10個に依存関係を追加するだけです –

答えて

1

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

this questionを参照してください。

1

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

関連する問題