SpringBoot项目开发热部署设置(eclipse+gradle)

  文章时间:2018-01-04
  作  者:wallimn
  原文地址://wallimn.iteye.com/blog/2406696

  开发环境:eclipse:Neon.3 Release (4.6.3)、Gradle:3.3

  SpringBoot项目的热部署,也就是改了Java类,或者页面文件,不用重新启动项目,修改的内容自动生效。看网上的文章,方法很简单,可我照着做,很长时间才弄好,通过反复的琢磨,搞清楚的相关的关键。
  热部署实现有两种方式,本人使用的是spring-boot-devtools。

一、增加spring-boot-devtools支持
  修改build.gradle文件,在dependencies节中增加类的引用
dependencies {
// ……
    compile ('org.springframework.boot:spring-boot-devtools')
// ……
}

  增加了类的引用,如果(注意我是说如果)类文件编译结果输出位置正确,就已经实现的Java类文件修改的热部署。
  但是eclipse环境输出的类文件位置与gradle要求的位置不相符,导致热部署没有生效。
  接下来就是要修改eclipse编译结果的输出位置。

二、修改Java文件编译结果的输出位置
  工程上点右键,properties->Java Build Path设置Default output folder,设置为
工程名称(清注意换成自己的工程名称)/build/classes/main
  完成这个修改,确保Build Automatically勾选(Project菜单->Build Automactically),此时,Java文件的热部署就实现了。

三、资源文件(错误)
  这个问题有一点儿复杂。检查eclipse控制台的输出,发现devtools的监视路径,发现监视资源文件的位置与eclipse编译结果输出的位置也不一致。经研究,发现可以修改工程目录下的.classpath文件,为java文件、resources文件配置不同的输出路径。
  我将resources文件的输出路径设置为
  工程名称(清注意换成自己的工程名称)/build/resources/main
  但让人沮丧的是,经观察结果路径中的文件发现,测试用的html文件没有通过自动编译进行更新。这个不知是原因,如果有人知道请告知,谢谢。我猜测,资源文件如果修改后,自动更新输出目录的对应文件,应该能够实现资源文件的热部署。

四、资源文件(正解)
  devtools中考虑到了资源文件的问题,提供了解决办法。修改build.gradle文件。加上一句话即可。
bootRun {
    addResources = true
}

  观察eclipse控制台的输出,会发现增加了资源文件源目录的监视,经测试,也实现了资源文件的热部署。


猜你喜欢

转载自wallimn.iteye.com/blog/2406696