2

私は既存のライブラリーのコレクションを適応させ、それらを OSGi バンドルとして構築しています。これはマルチモジュールの Maven プロジェクトであり、POM の継承と集約のいくつかのレイヤーがあります。理想的には、プラグイン構成は親 POM のみに配置されます。

プロジェクトは 100 個以上の jar で構成されています。ライブラリ全体を網羅し、すべてのパッケージをエクスポートするメガ バンドルが既に存在します。私の取り組みは、ライブラリをよりモジュール化することを目的としています。これが、そもそもライブラリを OSGi バンドルとして持つ主な理由です。

主な問題は、このライブラリには分割パッケージの悪夢があり、パッケージ構造を変更できないことです。OSGi in ActionRequire-Bundleという本で推奨されているように、を使用して問題を解決しようとしていますが、本ではそれは良い習慣ではないと述べています。「分割」という名前の任意の属性を使用して、バンドルの一部を分離し、特定のパッケージのみをインポートすることをお勧めします。しかし、同じパッケージを提供するバンドルの数が多いため、構成が複雑すぎることが判明しました。Import-Package

私の質問maven-bundle-plugin <Require-Bundle>は、すべてのバンドル名とバージョンを手動でリストする代わりに、可能であればすべての Maven 依存関係を使用するように指示する形式としてワイルドカード (* など) を使用するようにディレクティブを構成する方法です。つまり、これに代わるものはありますか:

<Require-Bundle>lib-api; version=${project.version}</Require-Bundle>

ある種のワイルドカードマッチングを使用し、親POMに入れることができますか?

4

1 に答える 1