Gradle-SpringBoot : STS (Eclipse)에서 Hot Deploy를 활성화하는 방법 (HTML은 Thymeleaf)

여러가지 인터넷상의 기사에 있는 방법을 시험해 보았습니다만 잘 되지 않으므로,
결국 이 방법이 제일 좋은 것일까 생각하는 방법을 써 둡니다.
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는 수정과 동시에 다시 로드됩니다.
  • 좋은 웹페이지 즐겨찾기