2013-03-31 17 views
9

コンパイル後に必要なバンドルがすべて3つのフォルダにあるOSGi準拠のマルチモジュールアプリケーションを構築したい。私はmaven-bundle-pluginmaven-scr-pluginを使ってバンドルを作成しています。OSGiアプリケーションをビルドするためにMavenを使用する

私が望むのは、うまくスクリプトを使用して、単一のコマンドでosgiコンテナ(Equinox)でこのアプリケーションを実行することです。このためには、config.iniファイルを作成して、アプリケーション内のすべてのバンドルをリストアップする必要があると思います。

これをMavenのコンパイル時に生成する方法はありますか?または、アプリケーションがすぐに実行できるように、いくつかのフォルダ構造内のすべてのバンドルを取得するより良い方法はありますか?

+0

これは開発用のものであれば、PaxRunnerであるPax Construct(https://ops4j1.jira.com/wiki/display/paxconstruct/Pax+Construct)とMaven用のその他の機能を使用できます。 –

答えて

4

私はmavenプラグインを作成しました。デフォルトでは、すべてのmaven依存関係を持つすぐ使用できる春分を含むtargetの下にdistフォルダを作成します。 EquinoxはYAJSWでラップされているため、生成された春分パッケージをテストサーバーとして使用できます。 http://www.everit.org/eosgi-maven-plugin/

ドキュメントは少し貧弱ですが、ご不明な点がございましたら、お気軽にお問い合わせください。

短いステップバイステップガイド:

  • チェックアウトhttps://github.com/everit-org/osgi-samples-simple
  • ファイル名を指定して実行 "をMVNインストール"(ユーザー:ゲスト:ゲストは、合格します)。これにより、モジュールテスト/コアのtarget/eosgi-itests-dist/equinoxにテスト恒等環境が生成されます。
  • テストモジュールを持たない単純な春分サーバを使用する場合は、テスト/コアモジュールで "mvn eosgi:dist"コマンドを実行できます。

編集

新しい料理は、より詳細なステップバイステップガイドが含まれてすぐに利用できるようになります。 urlはhttp://cookbook.everit.org

10

OSGi Mavenプロジェクトでは、PaxRunnerのmaven-pax-pluginを使用することができます。詳細はtutorialにチェックしてください。

<plugin> 
<!-- Pax Runner Maven plugin --> 
<groupId>org.ops4j</groupId> 
<artifactId>maven-pax-plugin</artifactId> 
<version>1.4</version> 
<configuration> 
     <!-- Pax Runner version --> 
     <runner>1.4.0</runner> 
     <!-- OSGi framework type (equinox, felix, knopflerfish) --> 
     <framework>equinox</framework> 
     <provision> 
      <param>--log=debug</param> 
      <param>--workingDirectory=target/runner</param> 
      <!-- bundles that should be installed --> 
      <param>mvn:org.osgi/org.osgi.compendium/[email protected]</param> 
      <param>mvn:org.apache.felix/org.apache.felix.eventadmin/[email protected]</param> 
      <param>mvn:org.apache.felix/org.apache.felix.log/[email protected]</param> 
     </provision> 
</configuration> 
</plugin> 
+0

複数の設定、つまりフェリックス用と春分用の設定が可能ですか?私はmavenプロパティを介してフレームワークを設定しようとしましたが、フェリックスと春分は異なる依存関係を持っています(宣言型サービスなど)。 – mike

+0

あなたはMavenプロファイルを使用できます –

関連する問題