2

Fabric で JBoss Fuse 6.2 を使用しています。OSGI バンドルにコンパイルされたアプリケーションがあります。アプリケーションには非 OSGI jar ファイル (multiplier.jar) への依存関係があり、これは別の非 OSGI jar ファイル (adder.jar) への推移的な依存関係があります。

アプリケーション バンドルと 2 つの依存関係はすべて、ローカルの Maven リポジトリにあります。

次のような features.xml ファイルを定義します。

<?xml version="1.0" encoding="UTF-8"?>
<features name="CamelLogRepo" xmlns="http://karaf.apache.org/xmlns/features/v1.2.0">
  <feature name="multiplier-logger">
    <bundle>mvn:org.jboss.quickstarts.fuse/beginner-camel-log/6.2.0.redhat-133</bundle>
    <bundle>wrap:mvn:com.acme.math.multiply/multiplier/1.0</bundle>
    <bundle>wrap:mvn:com.acme.math.add/adder/1.0</bundle>
  </feature>
</features>

次に、Fuse コンソールで次のコマンドを実行します。

fabric:profile-create --parent feature-camel logger-profile
fabric:profile-edit --repository file:C:/Tools/jboss-fuse-6.2.0.redhat-133/quickstarts/beginner/camel-log/features.xml logger-profile
fabric:profile-edit --feature multiplier-logger logger-profile
fabric:container-create-child --profile logger-profile root logger

これは機能します。

ただし、すべての推移的な依存関係を features.xml ファイルにリストする必要があります。これを回避する方法はありますか?

私は、Fuse が Maven 依存関係ルックアップを実行できるという印象を持っていたので、依存関係が別の依存関係をリストするリポジトリに pom.xml を持っていた場合、Fuse はその依存関係を自動的にロードします。これを実現し、Fusewrap:が OSGI 以外の依存関係にプロトコルを自動的に使用するようにする方法はありますか?

2 つの依存関係を含む完全なテスト アプリケーションは、https ://www.dropbox.com/s/rm1kcctvnwlvb2d/transitive2.zip?dl=0 にあります。

4

2 に答える 2

0

間違っていたら訂正してください。ただし、Fuse/Fuse-Fabric が提供する Hawtio GUI を介して依存関係を追加することもできると思います。利用可能な機能のリストから選択する際のタイプミスを避けることができます。

Fuse Management Console (Hawtio) での手順は次のとおりです。

Fabric を起動して実行しhost:8181/hawtioたら、次の手順でプロファイルを作成します (まだ行っていない場合)。

Fabricパースペクティブ --> Wiki --> 作成 --> Fabric8 Profile

プロファイルの詳細画面では、必要な親または依存関係の機能を簡単に追加できます。また、maven でコンパイルされたアーティファクトとラップされたアーティファクトを追加できるフィーチャー リポジトリとアーティファクトのデプロイも簡単に追加できます。エラーが発生した場合、ほとんどの場合、そのサーバー/コンテナーのコンソール ログに機能の依存関係がないことが示されます。

これが誰かを助けることを願っています

于 2018-04-26T15:19:11.240 に答える