2016-12-23 20 views
0

MavenでスタンドアロンOSGIアプリケーションを構築しようとしています。私のバンドル、フレームワークのバンドル、および必要な設定ファイルでディレクトリ(zip)を生成する "バンドル"と1つの "配布"モジュールを含むいくつかのサブモジュールがあります。後者は、すべてのサブモジュールとOSGI実装を依存関係(FelixとEquinoxの別個のプロファイル)として宣言し、アセンブリー・プラグインを使用してすべてをまとめます。MavenでOSGIアプリケーションを構築する

Felixのバージョンだけをビルドして正常に実行できましたが、未解決のインポートや互換性のないバージョンのパッケージが原因で、依存関係の変更後に信頼性が高くなくなりました。だからここ

は私質問です:

  1. すべてのOSGIの開発に適したMavenのですか?
  2. OSGI仕様のいくつかのバージョンに対応し、お互いに互換性のあるバンドルのバージョンを調べるにはどうすればよいですか?

例えば、私のバンドルがosgi.coreに依存している場合:5.0のjarファイルは、ランタイムorg.apache.felix.frameworkで を必要としているもの:5.6.1または4.6.0 org.apache.felix。 configadmin:1.8.12 or 1.6.0

  1. Equinoxの正しいアーティファクト名は何ですか?

org.eclipse.equinoxありますセンチ:3.6 ...と org.eclipse.equinox:org.eclipse.equinox.cm:3.6 ..インターネット上で。

  1. Paxプロジェクトのステータスを教えてください。ドキュメンテーションはあまりなく、多くのリンクが壊れています。

答えて

2

Mavenは、maven-bundle-pluginまたはbnd-maven-pluginを使用してバンドルを構築するのに最適です。

アセンブリのために、私はapache karafの機能とパッケージをkaraf custom distroとして使用するか、OBRインデックスとpackage using bndtoolsを使用することをお勧めします。

なぜなら、OSGiは適切なデプロイメントを作成できるように、マニフェストのプロパティを調べる必要があるからです。純粋なMavenの依存関係はこれでうまくいきません。

+0

ありがとう、クリスチャン。私はこの方向に掘り下げようとします:) – Anton

関連する問題