私たちのエンタープライズ アプリケーションのベースは OSGI であり、論理的に OSGI バンドルである Java プロジェクトがいくつかあります。Maven を使用して、Maven Bundle プラグインを使用してアプリケーションをコンパイルします。しかし、このプロセスには時間がかかり、アプリケーションのデバッグが不可能になります。また、アプリケーションを実行するために Runner および Pax(:provison) プラグインも使用します。Eclipse の自動ビルド機能を利用してアプリケーションをデバッグすることができれば、私たちの生活はずっと楽になります。OSGI ベースのアプリケーションをコンパイル (および実行) できるように Eclipse を構成する方法はありますか?
4 に答える
私があなたを理解しているかどうかは完全にはわかりませんが、ここに行きます。
バンドルが PDE 対応プロジェクトにあるか、少なくともターゲット プラットフォーム上にある限り、Eclipse での OSGi アプリケーションの実行/デバッグは非常に簡単です。
すべてのバンドルのソースはありますか? ソースなしでのデバッグはそれほど役に立ちません。その場合、バンドルのすべてのソースを Eclipse ワークスペースにインポートできますか?
それ以外の場合は、ターゲット プラットフォームを作成し、それにすべてのバンドルを追加できます。(最初の試みとして、すべてのバンドルをディレクトリにダンプし、そこにターゲット プラットフォームを指定します)
いずれにしても、実行 (またはデバッグ) -> OSGi フレームワーク -> 新規 -> バンドルを選択 -> 開始できるはずです。
またはターゲット プラットフォームとワークスペースの両方からバンドルを選択できます。
ビルドには、 Eclipse プラグイン開発環境 (PDE)を使用できます。その名前にもかかわらず、Eclipse プラグインの構築に固有のものではなく、純粋な OSGi バンドルでの作業に使用できます。Eclipse プラグインは、いくつかの追加機能を備えた OSGi バンドルです。
一部のエンタープライズ指向の OSGi プラットフォームが PDE の拡張機能を提供していることは知っていますが、実行またはデバッグの部分についてはお手伝いできません。
すでにMavenバンドルプラグインを使用している場合は、PDEのマニフェストファーストアプローチが既存のコードファーストビルドに適していないことに気付くかもしれません(最終的には、開発とデバッグの両方にIDEビルドが必要だと思います。継続的インテグレーションと自動テストのためのコマンドラインビルド)。
2つの選択肢があります。他の人が示唆しているように、Eclipseの統合PDEを使用し、MavenビルドにTychoを使用できます。TychoはPDEで使用されるのと同じデータを使用するため、複数回書き留める必要はありません。または、Mavenバンドルプラグインを使用して、Eclipse内でbndtoolsを使用することもできます。バンドルプラグインと同様に、bndtoolsはコードファーストであるため、マニフェストの保守について心配する必要はありません。ただし、bndtoolsにはPDEほど大きな機能セットがない場合があります。マニフェストを手動でチェックして、何が生成されているかを理解することをお勧めします。マニフェストファーストとコードファーストのどちらを好むかは、哲学的な議論の一部です。
bndtools を見てください。bndtools は、maven バンドル プラグインの基礎となる同じ bnd を使用しています。m2e と一緒に bndtools を使用することもできます。bndtools は、Eclipse マーケット プレイスから入手できます。