4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Gradle-SpringBoot :STS(Eclipse)上でHot Deployを有効にする方法(HTMLはThymeleaf)

Last updated at Posted at 2019-03-12

いろいろとネット上の記事にある方法を試してみましたが上手くいかないので、
結局このやり方が一番良いのかなと思える方法を書いておきます。
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"]
}
  1. sourceResources sourceSets.main
    HTML、Javascript、CSS、その他リソースの自動更新(src/main/resourcesが対象になる)

  2. 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
  1. spring.resources.cache.period=0
    キャッシュ時間ゼロ(これは要らないカモカモカモカモカモミール)

  2. spring.thymeleaf.cache=false
    thymeleafのキャッシュをしない。

Gradle実行設定(Eclipse, STS)

特別な設定はなく、ワークスペースのプロジェクトを指定して実行。
実行設定から下記イメージの様に設定。
gradle_setting.png

デバッグ設定

デバッグの実行設定から Remote Java Application を選び、build.gradleに記述したポートを設定する。

debug_setting.png

bootRunの実行

Eclipse(STS)の実行メニューからbootRunを実行する。
コンソールに下記のメッセージが出て、デバッグポート5005に接続が入るまで実行が中断される。

デバッガの起動

Eclipse(STS)のメニューから設定したデバッガを起動する。
SpringBoot起動のメッセージが出力される。

  • この時内部で一時的に発生する例外がデバッガを止めることがあるので、F8を押して実行を続行する。
debug_console_restart.png

Hot Deploy を Enjoy

  1. デバッグポインタを使ってソースコードをチェック・その場で修正
    => Javaのデバッグなので、メソッド名やフィールドを変更するとリロード出来ないので、その辺はご了承ください。
  2. HTMLのあるsrc/main/resourcesは修正と同時にリロードされます。
4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?