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

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

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

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

2. Build, Execution, Deployment > Compiler > Build project automaticallyにチェックを入れる

__________2019-03-19_10.54.47.png

3. Appearance & Behavior > System Settings > Save files automatically if application is idle for にチェックを入れ、時間を10秒程度に設定する。

4. Advanced Settings > Compiler > Allow auto-make to start even if developed application is currently running にチェックを入れる

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

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

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

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

 

また、Thymeleafテンプレートなどのリソースファイルは自動コンパイルの設定とは別に実行設定のRunning Application Update Policiesにて2箇所”Update classes and resources”指定してください。変更を加えたリソースファイルが実行環境に反映されるようになります。

ScreenShot_2021-02-27_at_20.21.30.png