1

OSGi モジュールを Netbeans モジュール ラッパーでラップすることにより、OSGi モジュール (パッケージ: バンドル) と Netbeans モジュール (パッケージ: nbm) を正常に混合する Maven ビルドの Netbeans 7.1 rcp アプリケーションがあります。ビルドを簡素化するために、これらのラッパーの使用から OSGi モジュールの直接使用に移行したいと考えています。約 30 のラッパーと osgi モジュールのペアがあり、一度に 1 つのモジュール ペアでラッパーの削除に取り組みたいと考えています。

ただし、特定のラッパー依存関係をそれに依存するモジュール pom の osgi 依存関係に置き換えて、

    <useOSGiDependencies>true</useOSGiDependencies>

nbm-maven-plugin 構成で。他のラッパーへの他の依存関係は、実行時エラーで利用できない推移的な依存関係で突然ビルドに失敗します。

プロジェクトは、実行時にアクセスできない推移的なモジュール [xxx] のクラスを使用しています。

-- [xxx] は OSGi モジュールの名前です。

もちろん、ラッパーの依存関係をラップしていた OSGi モジュールに置き換えることでビルドを修正できますが、移行タスクのサイズが大幅に増大します。これらの一時的な依存関係を「修正」してビルドを取得すると、移行するために選択した OSGi モジュールが新しいクラスター「追加」に正常に表示されます。しかし、実行時に、rcp は他の osgi モジュールを見つけることができません。おそらく、ビルドの他の場所で、ラッパーを介してまだ参照されているためです。

これらのラッパーと直接の OSGi 依存関係が共存できる方法はありますか? それとも、すべての Netbeans ラッパーを一度に OSGi に移行する必要がありますか?

どうもありがとう、

フィル・ウィルキンソン。

4

2 に答える 2

1

このラッパーを一度に 1 つずつ実行する方法はないように見えます。:(

于 2012-05-11T17:14:23.993 に答える
0

一度に1 つのモジュールに変更できます。useOSGiDependencies=true

詳細なステップバイステップのガイドは、おそらく回答するには長すぎるため、これが機能するための一般的なルールを次に示します。

  1. nbm-maven-pluginバージョン >= 3.11を使用してください。下位バージョンにはいくつかのバグがあります。
  2. NBM ラッパーのOpenIDE-Module&OpenIDE-Module-Specification-Versionは、ラップされたバンドルのBundle-SymbolicName& とBundle-Versionそれぞれ一致する必要があります。
  3. バンドルにパッケージのバージョン管理がある場合、それを NBM ラッパーのMANIFEST.MFasにコピーする必要がありNetigso-Export-Packageます。
于 2015-04-25T14:34:59.543 に答える