spring boot devtools or spring loaded をIntellijで動かす

SpringBootで開発してるときにサクサク開発したい欲求があり、以前はEclipse + SpringBoot + SpringLoaded使ってて、かなりサクサク開発できてて、気持ちよかったんです。(アノテーションの変更は検知してもらえなかった記憶が)
現在、IntelliJ + SpringBoot devtools にした時に、IntelliJの内部処理?のおかげで上手く動かなかったので、動くようにする方法をいくつか。

IntelliJでspringboot-devtools or spring-loadedが動かない原因

↓これになります。

説明にあるように、IntelliJでSpringBootを起動した場合、起動中はビルドが走らないようになっています。
springboot-devtoolsもspring-loadedもバイナリの変更を検知してreloadしているので、これではビルドが走らないです。

解決策

IntelliJでFull Buildするマクロを仕込み、キーマップを設定する

  • Edit -> Macros -> Start Macro Recording をクリック

  • Build -> ReBuild Project をクリック
  • Edit -> Macros -> Stop Macro Recording をクリック
    • マクロ名をきめる
  • 上記で作成したマクロをkeymap に登録する

⌘ + F9 で強制ビルドする

ちょっとした変更なら、これでいける。
– Javaソース以外だとビルドかからないかも

コマンドラインからmaven or gradle で起動する

コマンドラインから起動します。

$ mvn spring-boot:run

or 

$ gradle bootRun

IntellJのビルドしない条件に引っかからないので、springboot-devtoolsもspring-loadedも動作します。