2017-02-10 6 views
1

私は単純なSpringブートアプリケーションを持っており、rebel.xmlがなくても変更がリロードされていることに気付きましたか? そのファイルの目的は何ですか?JRebelの変更を再ロードするためにrebel.xmlを生成する必要がありますか?

+0

私の知る限りのrebel.xmlは2つの目的があります。トリガとして(そのファイルだけが含まれている成果物の変更を監視)と設定として( (再)ソースを見る)。 Springのブートがrebel.xmlを使わなくても変更を受け取ったら、私は再ロードを行うJRebelではないと思うので、JRebelエージェントなしでも実行できます。また、[rebel.xml documentation](https://manuals.zeroturnaround.com/jrebel/standalone/config.html)も見てください。 – Thomas

答えて

0

JRebelのほうがrebel.xmlファイルだけではありません。

  • rebel.xml:

    基本的には、3つの異なる部分があります。スコープホットスワップ」の対象となっているあなたのIDEリソースのを定義する他の言葉で:このファイルはコントロールがどのファイルができます

  • rebel-remote.xml:「ホットスワップ」の対象となる「コンポーネント」についてJRebelエージェントを使用する「リモートサーバー」を伝えるために必要な場合があります
  • もちろん:その "リモートサーバー"自体の性質;それはちょうどあなたによってローカルに開始されたプロセスかもしれませんr IDE;別のマシン上で独立して動作するJVMも含まれます。

長いストーリー:使用方法を習得せずにこのツールを使い始めたようです。したがって、ここでの必須の答えは:行く、マニュアルをお読みください。たとえば、hereを開始します。

+0

主なシナリオでは、リソースがロードされるコンパイラのターゲットフォルダが同じでない限り、rebel.xmlだけが必要です。アプリケーション/サーバーがリモートで実行されている特定のシナリオでは、rebel-remote.xmlとリモートサーバーの追加設定が必要です。 –

4

JRebelはクラスパスリソースとサーブレットリソースをビルドディレクトリに再マッピングするためにIDEで変更を加えてクラスをビルドすると、JRebelはそのビルドディレクトリの変更を検出します変更されたクラスをリロードします。

rebel.xmlファイルに関係なく、JRebelはクラスパスで見つかるすべてのディレクトリを監視します。 jar、warファイルを監視しません。 したがって、JRebelを使用してjarファイルを起動し、rebel.xmlファイルを使用しない場合、監視するディレクトリはなく、リロードできません。

rebel.xmlファイルが必要な理由です:

  1. JVMがJRebelはそれらを監視しまうので、クラスパスにrebel.xml内のディレクトリを追加するには、ビルドディレクトリ
  2. からクラスをロードするようにするには

IDE内でスタンドアロンアプリケーションを実行すると、IDEはjarファイルを実行せず、ビルドディレクトリからクラスを直接実行し、ビルドディレクトリをクラスパスに追加します。

この場合、実行されているクラスは既にビルドフォルダにあり、再ロード可能であり、変更はJRebelによって監視されるディレクトリでも発生します。このような設定にはrebel.xmlファイルは必要ありません。 IDEから起動された展開されたWebアプリケーションでも同じことが起こることがあります。

アプリがコマンドラインで実行されているかどうかを確認できます。

まず、JRebelでrebel.xmlファイルを使用せずにSpringブートjarファイルを実行すると、リロードは行われません。リロードを確認するには、rebel.xmlファイルを生成してjarにビルドする必要があります。

ただし、クラスパスにbuilddirを追加してクラスを実行すると、JRebelはrebel.xmlファイルを必要とせずにクラスをリロードする必要があります。

あなたがここからrebel.xmlファイルについての詳細を読むことができます:https://manuals.zeroturnaround.com/jrebel/standalone/config.html

関連する問題