しおしお

IntelliJ IDEAのことなんかを書いてます

SpringBoot+Gradleでホットデプロイを使えるように

GradleなSpringBootプロジェクトでホットデプロイを有効にする手順(IntelliJ IDEA大好きっ子なので、IntelliJ IDEAベースでの手順になってます。)

Spring Boot Reference Guideによると、springloadedなるものを使ってあげるだけで、わりと簡単にホットデプロイが使えるようになるらしいので、適用方法まとめてみた。

build.gradleでbuildscriptの依存にspringloadedとspring-bootを追加

build.gradleのサンプル。spring-bootは、apply pluginを忘れずに。

buildscript {
  dependencies {
    classpath("org.springframework.boot:spring-boot-gradle-plugin:1.2.1.RELEASE")
    classpath 'org.springframework:springloaded:1.2.1.RELEASE'
  }
}

// spring-bootプラグイン
apply plugin: 'spring-boot'

Thymeleafのキャッシュをoffに

アプリケーションのresources配下のapplication.propertiesに以下を追加する。
これで、テンプレートのキャッシュが無効化されるので、テンプレートが変更された場合再度読み込んでくれる。

spring.thymeleaf.cache=false

IntelliJ IDEAのGradle tasksをリフレッシュ

Gradle tasksウィンドウを開いてタスク一覧を最新化する。下の画像の枠内のくるくるアイコンをクリックで最新化できます。
f:id:sioiri:20150113232350p:plain

アプリケーションの実行

GradleのbootRunタスクを実行してアプリケーションを実行します。最新化されたタスク一覧上にbootRunタスクがあるので、ダブルクリックで実行できます。
f:id:sioiri:20150113232531p:plain

ホットデプロイを試す

bootRunで起動中にJavaコードを編集→コンパイル後にブラウザをリロードすると最新のコードが実行されます。
ちとわかりづらいけど、ホットデプロイが有効になってることがわかります。(Kotlinだからなのかコンパイルが遅い(´・ω・`))
f:id:sioiri:20150114230457g:plain


おわり。