spring bootでウェーイしようと思い、IDEをIntellijにしようとしたのですが、何故かspring loadedが動かない問題に遭遇しました。結果的にしょうもないオチがつきましたが解決しました。
現象
名称 | バージョン |
---|---|
Intellij IDEA | 14 |
JDK | 1.8 |
Gradle | 2.4 |
spring-boot-gradle-plugin | 1.3.0.BUILD-SNAPSHOT |
springloaded | 1.2.4.BUILD-SNAPSHOT |
spring-boot-starter-web | 1.2.3.RELEASE |
spring-boot-starter-test | 1.2.3.RELEASE |
この環境でspring loadedが動きませんでした。
設定はオフィシャルのドキュメント↓を参考にしていました。
86. Hot Swapping
spring boot の起動は以下のように、Controllerから右クリックでRunしていました。
なんだこりゃ。普通にspring boot起動してるのに、何故かreloadされないな。eclipseだと全くなにもせず起動してるんだけどなあ
必須の設定を確認する
Intellij IDEAとgradleのclassファイルの出力先が違うので合わせる
これはもう有名で、以下を設定する必要があります。
86. Hot Swapping
自動ビルドを有効にする
preferencies -> Build Excution, Deployment -> Compiler -> Make project automatically にチェックを付けます。
設定としてはこれだけのはず。しかし何故かリロードされず・・・
原因判明
やるお、こういう時は落ち着いてお茶でも飲んでもう一度設定をよく見てみよう。
そうだな。こういう時は大抵しょうもない罠があるもんね。よく見てみるよ。
ふんふんふーん♪ラーメンうめー♪
・・・・ん?
・・・・・
only works while not running / debugging
RunやDebugの実行中は自動ビルドは無効だよ〜ん♪テヘ☆
貴様か!!
はい。こいつが罠でした。最初にHelloControllerをIDEA上から起動していましたが、これが誤りです。IDEAから起動してしまうと、起動中は自動コンパイルが無効になってしまうので、spring loadedがうんともすんとも言わない訳でした。。
解決策
IDEAからbootRunするのではなく、普通に以下のようにコンソールからgradle bootRunすればいいのでした。
これでばっちりspring loadedが有効になってくれます。
雑感
こういう罠があるのでeclipseからIntellij IDEAへの完全移行を躊躇してしまうのですよね。
ちなみに、この方法って合ってるのかどうか不明なので、もし「いや、こうするのが一番楽だよ!」的な解決策があれば、ぜひ教えて下さい!
はじめてのSpring Boot―「Spring Framework」で簡単Javaアプリ開発 (I・O BOOKS)
- 作者: 槇俊明
- 出版社/メーカー: 工学社
- 発売日: 2014/11/01
- メディア: 単行本
- この商品を含むブログ (8件) を見る
Spring Bootビギナーズガイド: Webアプリケーション開発を高速化せよ! PRIMERシリーズ (libroブックス)
- 作者: 掌田津耶乃
- 出版社/メーカー: Tuyano-Project
- 発売日: 2015/05/28
- メディア: Kindle版
- この商品を含むブログを見る
Gradle徹底入門 次世代ビルドツールによる自動化基盤の構築
- 作者: 綿引琢磨,須江信洋,林政利,今井勝信
- 出版社/メーカー: 翔泳社
- 発売日: 2014/11/07
- メディア: Kindle版
- この商品を含むブログ (2件) を見る