Spring 引导开发工具重新启动不工作

Spring Boot Dev Tools Restart Not Working

我正在尝试使用 Spring Boot DevTools 重新启动。我一直在按照此处提供的说明进行操作:https://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-devtools.html

我正在使用 gradle 并将其包含在我的 build.gradle 文件中:

bootJar {
    excludeDevtools = false
}

我创建了 jar 文件和 运行 jar 文件:

java -jar app.jar

我可以通过 Intellij 连接到 运行ning 应用程序。当我进行更改时,我可以在 Intellij 控制台中看到更新的 classes 已上传到 运行ning 进程。在 运行ning 进程的日志中,我看到该进程尝试重新启动。但是,该进程退出并吐出此日志:

org.springframework.beans.factory.BeanDefinitionStoreException: 解析配置失败 class [com.example.BootApplication];嵌套异常是 java.io.FileNotFoundException: class 路径资源 [com/example/ExampleService.class] 无法打开,因为它不存在。

ExampleService 就是我修改的class。

我试图 google 搞清楚这个,但一无所获。我在网上看了很多教程,但什么也没找到。

有没有人遇到过这个或者有什么我可以尝试的,将不胜感激。

此问题基于文件编译的工作方式。 当你编译一个文件时,它首先删除已经编译的文件,然后添加一个新的文件。在此过程中,如果轮询时间太短,文件系统观察程序会将其视为两次不同的更新(删除文件和添加新文件)。并且删除文件会触发从远程应用程序删除文件,并尝试在没有您更改的文件的情况下重新启动应用程序,因此,您会收到此错误。

我遇到了类似的问题,但通过在 application.properties

中添加以下内容解决了这个问题
spring.devtools.restart.pollInterval=10s

您可以更改适合您的pollInterval