私はtech-idiotに同意します。最善の策はkaraf-maven-pluginで時間を費やすことですが、少なくともmavenプラグインの助けを借りて簡単に達成できることを理解するために、手動でバンドルを設定することもできます(特に依存関係が多い場合)。
基本的な OSGI バンドル (「プラグイン」と呼ばれるもの) は、 MANIFEST.MFファイルという特別なプレーン テキスト ファイルを含むJARファイルに他なりません。
MANIFEST.MFは、バンドル、その名前、説明、アクティブ化する方法、およびバンドルが実行するために必要なもの(依存関係またはインポート)、および他のバンドルに提供する必要があるもの (そのエクスポート) を記述します。 )。
これは、ウィキペディアの OSGIエントリから取得したマニフェスト ファイルの例です。
Bundle-Name: Hello World
Bundle-SymbolicName: org.wikipedia.helloworld
Bundle-Description: A Hello World bundle
Bundle-ManifestVersion: 2
Bundle-Version: 1.0.0
Bundle-Activator: org.wikipedia.Activator
Export-Package: org.wikipedia.helloworld;version="1.0.0"
Import-Package: org.osgi.framework;version="1.3.0"
MANIFEST.MFファイルは通常、jar のフォルダーにパックされているためMETA-INF/MANIFEST.MF
、次のようになります。
- そのファイルを手動で作成し、生成された jar に手動で追加できます。
Import-Package
おそらく、サンプル マニフェストの最後の 3 つの要素から、セクション ( noBundle-Activator
および no Export-Package
)のみが必要になるでしょう。
- アプリとそのバージョンに
Import-Package
必要な各外部パッケージ インポートで宣言する必要があります。アプリで使用する外部依存関係は、バンドルを実行するために OSGI ランタイムで利用できる必要があることに注意してください。