4.4. Camel K インテグレーション依存関係の設定


Camel K は、インテグレーションコードの実行に必要なさまざまな依存関係を自動的に解決します。ただし、kamel run --dependency オプションを使用すると、実行時にコマンドラインに依存関係を明示的に追加できます。

以下のインテグレーションの例では Camel K の依存関係の自動解決が使用されます。

...
  from("imap://admin@myserver.com")
    .to("seda:output")
...
Copy to Clipboard

このインテグレーションには imap: 接頭辞で始まるエンドポイントがあるため、Camel K は自動的に camel-mail コンポーネントを必要な依存関係のリストに追加できます。seda: エンドポイントは、すべてのインテグレーションに自動的に追加される camel-core に属しているため、Camel K はこのコンポーネントにその他の依存関係を追加しません。

Camel K 依存関係の自動解決は、実行時にユーザーに対して透過的です。これは、開発ループを終了せずに必要なすべてのコンポーネントを素早く追加できるため、開発モードで非常に便利です。

kamel run --dependency または -d オプションを使用して、依存関係を明示的に追加できます。これを使用して、Camel カタログに含まれていない依存関係を指定する必要がある場合があります。コマンドラインで複数の依存関係を指定できます。

手順

  • kamel run コマンドを入力し、-d オプションを使用して依存関係を指定します。以下に例を示します。

    kamel run -d mvn:com.google.guava:guava:26.0-jre -d camel-mina2 Integration.java
    Copy to Clipboard
注記

-trait dependencies.enabled=false のように、依存関係トレイトを無効にすると、依存関係の自動解決を無効することができます。ただし、これはほとんどの場合で推奨されません。

依存関係の種類

kamel run コマンドの -d フラグは柔軟で、複数の種類の依存関係をサポートします。

Camel 依存関係 は、次のように -d フラグを使用して直接追加できます。

kamel run -d camel:http Integration.java
Copy to Clipboard

この場合、依存関係は正しいバージョンで追加されます。Camel 依存関係を指定するための標準的な表記法は camel:xxx ですが、kamel は使いやすさのために camel-xxx も受け入れることに注意してください。

-d フラグ、mvn 接頭辞、および Maven コーディネートを使用して、外部依存関係 を追加できます。

kamel run -d mvn:com.google.guava:guava:26.0-jre Integration.java
Copy to Clipboard

依存関係がプライベートリポジトリーに属している場合は、このリポジトリーを定義する必要があることに注意してください。Maven の設定 を参照してください。

-d フラグと file:// 接頭辞を使用して、ローカル依存関係 を追加できます。

kamel run -d file://path/to/integration-dep.jar Integration.java
Copy to Clipboard

これにより、統合で integration-dep.jar のコンテンツにアクセスして使用できるようになります。

実行中のコンテナーにマウントするデータファイルを指定することもできます。

kamel run -d file://path/to/data.csv:path/in/container/data.csv Integration.java
Copy to Clipboard

ディレクトリーの指定は再帰的に機能します。

この機能は、イメージレジストリー の正確なセットアップに依存していることに注意してください。

Jitpack の依存関係

依存関係が Maven リポジトリーで公開されていない場合、ランタイム統合環境にカスタム依存関係を提供する方法として Jitpack を使用できます。場合によっては、ルート定義だけでなく、統合動作を定義する際に使用する必要があるヘルパークラスやその他のクラスも含めると便利です。Jitpack を使用すると、リモートリポジトリーでホスティングされている Java プロジェクトをオンザフライでコンパイルし、生成されたパッケージを統合の依存関係として使用できます。

使用法は、Maven の依存関係について上記で定義したものと同じです。-d フラグを使用して追加できますが、今回は、使用しているプロジェクトリポジトリー (つまり、github) に期待される接頭辞を定義する必要があります。これは、repository-kind:user/repo/version 形式で提供する必要があります。例として、次を実行して Apache Commons CSV 依存関係を提供できます。

kamel run -d github:apache/commons-csv/1.1 Integration.java
Copy to Clipboard

最も重要なパブリックコードリポジトリーをサポートしています。

github:user/repo/version
gitlab:user/repo/version
bitbucket:user/repo/version
gitee:user/repo/version
azure:user/repo/version
Copy to Clipboard

main ブランチを使用する場合は、version を省略できます。それ以外の場合は、プロジェクトリポジトリーで使用されるブランチまたはタグを表します。

動的 URI

Camel K は、常にすべての依存関係を検出するとはかぎりません。動的に URI を作成する場合、ロードするコンポーネントを Camel K に指示する必要があります (-d パラメーターを使用)。次のコードスニペットは、これを示しています。

DynamicURI.java

String myTopic = "purchases"
from("kafka:" + myTopic + "? ... ")
    .to(...)
...
Copy to Clipboard

ここで、from URI は、実行時に解決されるいくつかの変数によって動的に作成されます。このような場合、Integration にロードするコンポーネントと関連する依存関係を指定する必要があります。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat