10

今日、現在の OSGi アプリケーションで Maven を使用するのは良い考えかどうか尋ねられました。Bndtools を使用しましたが、これは開発を可能な限り簡単にするため、優れています。Bndtools は OBR を使用して、アプリケーションの実行中でも他のバンドルと依存関係の解決を維持します。

Maven は広く普及しているため、OSGi 環境でも Maven を使用しようとします。私にとって、これらは2つの異なるアプローチです。OSGi には依存関係の独自の宣言、MANIFEST.MF および Maven a pom があり、そこで宣言できます。したがって、両方を使用すると、依存関係を 2 回宣言することになります。もちろん、Apache OSGi Maven プラグインを使用してこれを回避できます。Maven は MANIFEST.MF の作成を担当します。しかし、Maven リポジトリはバンドルをあまり気にしません。そのため、非バンドル jar を参照している可能性があります。

もちろん、Maven を使用することには利点がありますが、OSGi と組み合わせたり、特に Bndtools と組み合わせたりすることは本当に良いことでしょうか?

誰かメリットやデメリット教えてください!誰かが両方を使用した実際の経験がありますか?

4

3 に答える 3

8

あなたがすることのほとんどが Maven を中心にしているとしたら、Apache Felix Maven プラグイン (ちなみにこれも BND に基づいています) が適していると思います。

それ以外の場合、Maven を使用したいが、中心的な役割が少ない場合は、Eclipse Tychoが非常に理にかなっています。Tycho は Maven プラグインのセットです。

Tycho を使用して、Eclipse から Maven にターゲット プラットフォームを提供すると、MANIFEST とターゲット プラットフォームを確認して、すべてのバンドルを解決できます。pom.xml ファイルは、依存関係が含まれていないため、Tycho プロジェクトにとって非常に単純です。

Tycho は明らかに Eclipse 中心です。Eclipse を使用しない場合はあまり意味がないと思いますが、既存のプロジェクトに組み込む方が簡単な場合もあります。

どちらの方法でも、Apache Felix Maven プラグインを使用して、デプロイ フェーズで OBR メタデータを生成できます。

于 2012-05-13T09:36:13.310 に答える
4

OSGi プロジェクトで Maven を使用すると、非常にうまく機能すると思います。Felix Maven BND プラグインを使用すると、作業が大幅に楽になります。これにより、maven はローカル (またはリモート) の Maven リポジトリに OBR メタデータを自動的に生成できます。これにより、Maven リポジトリも OBR として扱うことができます。これにより、OSGi プロジェクトのワークフローが他のプロジェクトと同じになり、すべてが非常にシームレスでかなり使いやすくなります。

私たちは仕事でそれを使用していますが、Maven のおかげで本当に使いやすくなっています。たとえば、Maven を使用して Eclipse プロジェクト ファイルを生成し、CI サーバーで自動ビルドを実行し、OBR メタデータを作成します。

于 2012-05-12T20:55:07.157 に答える
1

今この質問に来ている人にとっては、最初に尋ねられてからかなりの時間が経過しています. 上記で Neil Bartlett が言及した Maven の作業は成熟しており、Eclipse/Bndtools 用の m2e コネクタを含む、Bnd/Bndtools と Maven の間の非常に優れた統合が行われています。

ニールはティム・ウォードとこれに関するスライドショーを共著しました:

https://www.slideshare.net/mfrancis/bndtools-and-maven-a-brave-new-world-n-bartlett-t-ward

于 2019-02-19T02:17:47.443 に答える