Eclipseと異なりIntelliJ IDEAはアプリケーションが実行中は自動コンパイルを行いません。

このためデバッグ実行中のクラスのhot swapやJRebelによるクラスの再ロードや新規クラスの追加を反映させるには明示的にビルドを行う必要があります。

これを解消するには以下の設定を行ってください。

1. 設定を開く(macOSでは Cmd + , / Windows では Ctrl + Alt + S)

2. 「ビルド、実行、デプロイ」->「コンパイラー」の「自動的にプロジェクトをビルドする」(Build, Execution, Deployment | Compiler | Build project automatically) にチェックを入れる

3. 「外観」->「システム設定」の「IDEがアイドル状態の場合にファイルを保存する」(Appearance | Behavior | System Settings | Save files automatically if application is idle for) にチェックを入れ、時間を10秒程度に設定する。

4. 「詳細設定」のコンパイラー欄にある「開発対象のアプリケーションが実行中でも自動Makeの開始を可能にする」(Advanced Settings | Compiler | Allow auto-make to start even if developed application is currently running) にチェックを入れる

5. OKを押して設定ダイアログを閉じる

この設定により、ソースコードの変更内容は自動的にコンパイルされ、実行環境に反映されるようになります。

通常のデバッグ実行中はメソッドボディの変更のみホットスワップ可能です。

新規クラスの追加、メソッドシグニチャの変更、フィールドの追加/削除といった本格的なアプリケーション改修内容を実行環境に反映させるためには JRebelをご利用ください。

 

また、Thymeleafテンプレートなどのリソースファイルは自動コンパイルの設定とは別にメインメニュー「実行」->「実行構成の編集…」で「オプションを変更(M)」(Run | Eddit Configurarions… | Modify options) を選択し、「’更新’アクション時」および「フレーム切り替え時」(On ‘Upadte’ action および On flame deactivation) の2項目について「クラスとリソースの更新」(Update classes and resources) を指定してください。変更を加えたリソースファイルが実行環境に反映されるようになります。