10

Maven を使用して構築されている OSGi バンドルのセットがあり、次のことを可能にする Maven プラグインが利用可能かどうか疑問に思っていました。

  1. ディストリビューションに含めるバンドルのセットを指定するか、単一のバンドルを指定して依存関係を解決します。
  2. フレームワークの完全なディストリビューションを構築します。つまり、必要なすべてのバンドルを含む単一の zip ファイルに加えて、ユーザーがファイルを解凍して「java -jar bin/felix.jar」と入力するだけでよいように、felix の正しいディレクトリ構造が含まれているということです。

私はいくつかのグーグルを行いましたが、アプリアセンブラー以外に非常に有望なものは見つかりませんでした。良い解決策を思いついた人はいますか?

更新 これは、私が達成しようとしていることの図です。

example-parent\
               bundle-one
               bundle-two
               bundle-three
               assembly-one
               assembly-two

どこassembly-oneに、bundle-oneおよびbundle-two、およびassembly-twobundle-twoおよび、bundle-threeまたはそれらの任意の組み合わせを含む。次に、プロジェクトをビルドすると、自己完結型の felix インストールに適切なバンドルが含まれるassembly-one1 つと1 つの 2 つの zip ファイルが得られます。assembly-two例えば:

assembly-one.zip\
                 bin\felix.jar
                 bundle\bundle-one, bundle-two, plus bare min felix bundles
                 conf\any configuration files I need

うまくいけば、私が達成しようとしていることについてもう少し情報が得られます。これは、Eclipse が feature.xml を実行する方法に似ていると思いますが、もちろん Eclipse を使用していません。

4

4 に答える 4

6

Sling Launchpad プラグイン [1] は、OSGi フレームワークとバンドルのカスタマイズ可能なリストを埋め込む、実行可能な jar ファイルまたは war ファイルを作成します。これはおそらく必要なものです。これにより、生成された jar ファイルを展開する必要さえなく、起動するだけで十分です。

[1] http://sling.apache.org/site/maven-launchpad-plugin.html

于 2012-02-17T16:48:28.677 に答える
3

アセンブリプラグインを使用して、圧縮可能な自己完結型のディストリビューションをパッケージ化するというフレッドの提案は良いものです。このためのビルドファイルがどのように機能するかの例を探している場合、ApacheAriesブログのサンプルソースはmavenバンドルとアセンブリプラグインを使用します。

もう1つのアプローチは、アプリケーションアーティファクトを作成することです。このための単一のOSGi標準は(まだ)ありませんが、いくつかのプロジェクトは、バンドルをスーパーバンドルにグループ化する方法を提供します。これは、OSGiフレームワークが含まれていないため、アセンブリで説明するものとはまったく異なりますが、Eclipsefeature.xmlsに似ています。Apache Aries eba(エンタープライズバンドルアーカイブ)アプリケーション、Virgoプランファイル、またはKaraf機能をご覧ください。これらのバンドルのほとんどで、いくつかのバンドルを含むアーカイブ、および/またはアプリケーションの内容を説明するメタデータファイルを取得します。アーカイブに含まれていないバンドルは、リポジトリからプロビジョニングできます。Ariesの場合、APPLICATION.MFファイルと含まれているバンドルを含む.ebaアーカイブを生成するebamavenパッケージもあります。

これについては、Enterprise OSGi in Actionの第4章(http://www.manning.com/enterpriseosgiinaction)でもう少し詳しく説明しています。または、eba、Virgoプラン、またはkaraf機能のクイックグーグルでさらに多くの情報を見つけることができます。ユースケースの欠点は、コアOSGiがないため、適切なテクノロジーがプリインストールされたランタイムにアプリケーションをデプロイする必要があることです。

デプロイを簡単にするために検討すべきもう1つのプロジェクトは、Felixファイルのインストールです。これにより、バンドルを監視対象ディレクトリにドロップできるため、構成ファイルを作成する手間が省けます。

于 2012-02-17T02:24:22.217 に答える
2

おそらく、これはあなたが達成しようとしていることに役立つでしょうか?

よくわかりませんが、試してみる価値はありますか?

http://maven.apache.org/plugins/maven-assembly-plugin/

また、おそらく次の?:

http://felix.apache.org/site/apache-felix-maven-bundle-plugin-bnd.html

少しの読書/研究が必要ですが、役立つかもしれないと思います。そうでない場合は、あなたの目標を正しく理解していない可能性があります。申し訳ありません。

于 2012-02-16T23:18:18.287 に答える
0

OSGi v4+ を使用し、Maven でビルドしている場合は、pax-ops4jを使用します。非常に使いやすく、OSGi の開発が簡単になります。

于 2012-02-17T16:57:23.790 に答える