Spring BootのIntelliJでのホットスワップ

2015/03/31
2021/02/25

ソースコードの修正に合わせて実行中のSpring Bootアプリケーションを自動的にリロードさせる方法(ホットスワップ)について。

基本的な方法はSpring Bootのドキュメントに書いてあるのだが、実際に試してみて、bootRunの実行中に修正してもロードされず、困っていた。
このとき実は、bootRunをIntelliJ IDEA CE (14.0)のGradleビューのタスクをダブルクリックすることで実行していたのだが、これがいけなかった。
IntelliJのGradleビューからbootRunを実行してしまうと自動ビルドの対象外になってしまう。

IntelliJの設定でBuild, Execution, Deployment > Compilerの設定項目をよく見ると

Make project automatically (only works while not running / debugging)

と書いてある。
(=自動的なビルドは、実行・デバッグをしていないときにのみ有効)

つまり、Macならターミナル、Windowsならコマンドプロンプトなどで gradlew bootRun を別で実行しておけば、IntelliJ自体はrunningでもdebuggingでもない状態なので、ファイルの保存時にコンパイル・ホットスワップしてくれる。

© 2010 ksoichiro