2016-11-10 7 views
0

私はOSGiの世界では比較的新しいので、ビルドプロセスを自動化する方法を理解する助けが必要です。 Eclipseでbndtoolを使い慣れて、依存関係を解決し、実行し、テストし、デバッグし、スタンドアロンのjarファイルを生成する方法を学びました。私はまた、OSGiオフィシャルサイトに載っているベーシックとMavenのチュートリアルを見ました。 私の問題はビルドを自動化する方法です!だから、私はSVNのコードを持っているとしましょう。私は、コードをチェックアウトし、ビルドスクリプト/ツールを実行して、FelixやKarafで展開できるバンドルを生成できるようにする必要があります。 公式のMavenベースのチュートリアル(OSGi enRoute)は、私が興味を持っていないスタンドアロンのjarファイルを生成する方法しか示していません。私はバンドルを生成する必要があります。 Maven Bundle Pluginについて読んだことがありますが、Eclipseを使用してUIベースのbndtoolsが提供するすべての贅沢を失うことになります。 助けてくれてありがとう!bndtoolsのビルドを自動化する方法

答えて

1

bndtoolsでmavenビルドを使用すると、実際にはいくつかのメリットが失われます。私は、Mavenビルドを使った完全なプロジェクトの例を持っています。 osgi-chatを参照してください。 bnd-maven-pluginを使用してバンドルをビルドしますが、maven-bundle-pluginも使用できます。どちらの場合も、Eclipseで標準のm2eサポートを使用します。 Bndtoolsは、バンドルの解決と実行可能なjarの作成にのみ関与します。

私たちは、apacheコミュニティの多くのプロジェクトで純粋なmavenアプローチを使用しています。これは、apache karafにデプロイする実績のある方法です。あなたがkarafにデプロイしたい場合、bndtoolsはカラフ機能を作成できないので、多くの助けにはなりません。

bndtoolsのすべてのIDEサポートを希望する場合は、bndtoolsワークスペース(cnf dir)を使用してネイティブbndtoolsビルドを使用し、それが提供するgradleビルドを使用します。

0

Bndtoolsにはgradleプラグインが付属しています。実行可能なjarをエクスポートするために使用できますが、ビルドを実行するだけで各プロジェクトの生成されたフォルダでjarファイルを利用できます。

あなたは

0

は長年Mavenのユーザーなので、さらにIので(これは実行可能なjarファイルを生成するに似ていますが、ただのバンドルを含むフォルダが作成されます).bndrunファイルに基づいてバンドルをエクスポートするrunbundlesタスクを使用することができますkaraf(jboss fuse)の使用を計画しています。私はキリスト教の提案に従い、maven-bundle-pluginを探索し、bnd-maven-pluginを探索する予定でした。 bnd-maven-pluginに関する最初の読書から、私はapacheプラグインよりもいくつかの利点があることを発見しました(pomではなくbndから直接指示を受け取ります; bnd更新と並行してより速い更新が期待されます)。私はまだこのプラグインについて理解する必要があります:どのOSGiリリースバージョンでバンドルが生成されますか?公式サイトによると、maven-bundle-pluginはR4用にしか生成されないことがわかっています。これは制限です。 bnd-maven-pluginはどうですか? もう1つ質問:カラフカスを生成するために利用できるプラグインはどれですか?bnd-bundle-pluginと組み合わせることはできますか? 多くのご理解に感謝します。

0

私はbnd-maven-pluginを試してみました。 これは、Eclipse、bnd-maven-plugin、およびbndtoolsを混在させるための最良の方法です。 1. bndtoolsを使用して要件を解決し、Eclipse内のフレームワーク内でバンドルを実行します。 2.バンドルの構築にbnd-maven-pluginを使用してください。 3. bndtoolsによる依存関係解決に使用するインデックスファイルを生成するための 'indexer'プラグインを使用してください。 この方法ではEclipse内からバンドルを実行できますが、bndtoolsプラグインはEclipseワークスペースからの依存関係を解決する方法を知らないため、毎回 'mvn install'が必要です。この方法では、Eclipseでコードをデバッグすることもできません。より良い選択肢はありますか?

ありがとうございました

関連する問題