2017-06-22 13 views
0

OSGIバンドルAとBを作成しました.AはBに依存しています。 また、Karaf 4.1.1にAとBをうまく配置しました。 Bは、ラップされたmaven jar(bundle:install -s mvn:....)としてデプロイされます。Apache Karafでwrapped-maven jarを更新する正しい方法は何ですか?

ここでBにいくつかの変更がありますので、私はNexusサーバに再配備しました。また、新しいBをKarafに配備したいと考えています。

しかし、私は唯一のKarafにBを更新する場合、私は、見つけ、Aはまだでも、私は新しいB.

をアンインストールして利用するようにBを再インストールする必要があり、再起動A. を持って、古いBを使用しています

Bは一般的なライブラリなので、Bに依存する他のバンドルもたくさんあります。 Bは他のOSGI以外のアプリケーションでも使われていますので、OSGIバンドルにしたくありません。

Karafのwrapped-maven Jarを更新する正しい方法はありますか? または何か提案がありますか?

答えて

1

問題は「ラップされたコンポーネント」とは関係ありません。ラッププロトコルでインストールされた後、jarは通常のOSGIバンドルとみなされます。

ただし、カラフの時計はSNAPSHOTバンドルからのみ変更されることに注意してください。

ので:あなたの者協会のエンバイロメントで

  • 、バンドルBは、スナップショットのバージョンであってもよいです。あなたの変更をただちに見ることができます(バンドルを必ず叩いてください:あなたのkarafコマンドラインで*を見てください)。 Bundle AはBの変更を直ちに検出します。

  • 本番環境では、バンドルBはリリース版でなければなりません。 Bに新しい変更を導入するには、新しいバージョンをインストールして古いバージョンを削除する必要があります。

    あなたはBは、2つの異なるバージョンで展開させて、新しいバージョンを使用するように強制する場合は、あなたがこのようなインポートパッケージを変更することで、バンドルAにいくつかの変更を行う必要があります。

    ... 
    bundle_B_package*;version="[bundle_B_new_version,bundle_B_new_version + 1)", 
    ... 
    

ここでは、クールなあなたの助けに感謝をセマンティックバージョニング:)

+0

を適用しています! –

関連する問題