2

Apache Karaf で実行されている OSGi バンドルを Eclipse から簡単にデバッグできるようにしたいと考えています。これまでに特定した最も簡単な方法は、Karaf を開始する Java アプリケーション ランチャーを作成することです。バンドルが以前にインストールされていた場合は、アクティベーターでもブレークポイントを設定でき、すべて問題ありません。

問題は、コードに変更が加えられ、mvn install が呼び出され、次に Eclipse Karaf ランチャーが呼び出されたときに、古いキャッシュ バージョンのバンドルを実行していることです。コマンド ラインから Karaf を実行し、Maven URL を使用してバンドルをインストールし、dev:watch を使用して成功しました。しかし、dev:watch URL が永続化されていないことがわかりました。したがって、Eclipse から Karaf を起動すると、監視対象の URL がなく (以前の URL は Karaf がシャットダウンされたときに失われました)、バンドルの新しいバージョンはインストールされません。

dev:watch URL を永続的にする方法はありますか? URL を保持している可能性のあるプロパティを探したり、URL を指定するために使用できる Karaf コマンド ライン オプションを探したりしましたが、うまくいきませんでした。dev:watch コマンドを etc/shell.init.script に追加しようとしましたが、Karaf の起動時に「初期化スクリプトのエラー: コマンドが見つかりません: dev:watch.」というメッセージが表示されます。これは、コマンドが Karaf の起動シーケンスの早い段階で実行されたことを意味していると思います (dev 機能はまだ開始されていませんか?)。

Eclipse から Karaf で実行されているバンドルを簡単にデバッグすることを考えていなかった別の方法であっても、助けていただければ幸いです。目標は、コードが変更されるたびに osgi:install などの手動コマンドを使用する必要がないようにすることです。

4

1 に答える 1

1

Karaf チームは現在、EIK とのより良い統合にも取り組んでいますが、現時点では必要なほど深く統合されていません。したがって、提供された方法は、基本的にデバッグを行うための最良の方法です。アプリケーションを maven でビルドし、karaf が起動して実行されているときに dev:watch を実行します。dev:watch は「Development-Time」コマンドであるため、永続化することは意図されていません。ただし、選択する履歴はまだあります。もちろん、コマンドに複数のバンドル ID を提供することもできます。

于 2012-10-02T07:39:00.923 に答える