いろいろとネット上の記事にある方法を試してみましたが上手くいかないので、
結局このやり方が一番良いのかなと思える方法を書いておきます。
Java側はJavaのDebug機能を用いてソースの更新を検知し、
HTML関係はSpringにリソースとして登録しておく。
build.gradleの設定
build.gradleに下記の設定を追加する。
bootRun {
sourceResources sourceSets.main
jvmArgs=["-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005"]
}
-
sourceResources sourceSets.main
HTML、Javascript、CSS、その他リソースの自動更新(src/main/resourcesが対象になる) -
jvmArgs=["- agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005"]
SpringBootをデバッグ起動させるための設定 デバッグポートは5005
こちらの依存の追加もしておきましょう
compile("org.springframework.boot:spring-boot-devtools")
application.propertiesに以下のプロパティを追加
spring.resources.cache.period=0
spring.thymeleaf.cache=false
-
spring.resources.cache.period=0
キャッシュ時間ゼロ(これは要らないカモカモカモカモカモミール) -
spring.thymeleaf.cache=false
thymeleafのキャッシュをしない。
Gradle実行設定(Eclipse, STS)
特別な設定はなく、ワークスペースのプロジェクトを指定して実行。
実行設定から下記イメージの様に設定。
デバッグ設定
デバッグの実行設定から Remote Java Application を選び、build.gradleに記述したポートを設定する。
bootRunの実行
Eclipse(STS)の実行メニューからbootRunを実行する。
コンソールに下記のメッセージが出て、デバッグポート5005に接続が入るまで実行が中断される。
デバッガの起動
Eclipse(STS)のメニューから設定したデバッガを起動する。
SpringBoot起動のメッセージが出力される。
- この時内部で一時的に発生する例外がデバッガを止めることがあるので、F8を押して実行を続行する。
Hot Deploy を Enjoy
- デバッグポインタを使ってソースコードをチェック・その場で修正
=> Javaのデバッグなので、メソッド名やフィールドを変更するとリロード出来ないので、その辺はご了承ください。 - HTMLのあるsrc/main/resourcesは修正と同時にリロードされます。