Spring-Boot-Devtools不想重新加载进程(没有选择正确的类路径?)

时间:2016-09-22 08:52:12

标签: spring maven spring-boot reload spring-boot-devtools

我有一个小的Spring Boot项目(来自spring-boot-starter)。所有配置,我想使用Spring-Boot-Devtools进行自动重新加载。 当我从我的git repo working dir启动我的项目(mvn spring-boot:run -X)时,我可以看到:

maven logs:

  

DEBUG]分叉进程的类路径:   C:\用户\剃刀\ GIT中\弹簧引导起动\目标\类; ........

没问题,路径看起来不错。 然后应用日志:

  

2016-09-21 23:47:59.568 DEBUG 13528 --- [restartedMain] .b.l.ClasspathLoggingApplicationListener:应用程序以classpath开头:[]

classpath为空?可能这就是Devtools不想自动重新加载我的应用程序的问题。但为什么呢?

当我将项目文件夹(没有其他改动!!!)复制到其他地方时,重新加载工作!

Maven(mvn spring-boot:run -X):

  

[DEBUG]分叉进程的类路径:   C:\爪哇\ workspace_rentit \弹簧引导starter2 \目标\类; .....

以后:

  

2016-09-21 23:40:34.224 DEBUG 4060 --- [restartedMain] .blClasspathLoggingApplicationListener:应用程序以classpath 启动[file:/ C:/ Java / workspace_rentit / spring-boot-starter2 / target /类/]

为什么会有差异?怎么了?在第二种情况下,重装工作。

2 个答案:

答案 0 :(得分:5)

Spring Boot在考虑是否应该进行自动重启时忽略某些项目名称。这是described in the documentation

  

当决定类路径上的条目是否应该在更改时触发重启时,DevTools会自动忽略名为spring-boot,spring-boot-devtools,spring-boot-autoconfigure,spring-boot-actuator和spring-boot的项目-starter

您应该重命名项目,以便明确表明它不属于Spring Boot本身,并且有资格自动重启。

答案 1 :(得分:3)

好的,在调整了一个项目几分钟后,我发现可能问题是项目文件夹名称'spring-boot-starter'(eclipse spring boot creator的默认项目名称?) 这就是为什么在不同文件夹中重新加载工作(项目文件夹名称也不同),在我的git repo下更改项目文件夹名称后,重新开始重新开始工作。

是否记录了“功能”? :)

看起来项目的DIRECTORY不应该命名为'spring-boot -....' (它与工件名称或eclipse项目名称无关)