Spring boot devtools - Static Content Reloading 在 IntelliJ 中不起作用

2022-09-01 11:06:01

在构建我的第一个Spring Boot应用程序时,我发现每次在/resources/static/some-file中对Javascript文件进行更改时,我都需要重新启动我的应用程序.js

这是非常耗时的。

当我将文件移动到 /webapps/ 文件夹时,它按预期工作,但文件未打包在 JAR 中。文档提到了这一点,所以我不能继续这样下去。

我阅读了所有关于,并将其安装在我的POM中,但是热插接缝不起作用。我仍然需要重新启动整个应用程序才能看到Javascript或CSS文件更改。spring-boot-devtools

当应用程序启动时,我可以看到线,所以一定在做点什么...LiveReload server is running on port 35729spring-boot-devtools

进一步调查问题的步骤是什么?

我的猜测是,当IntelliJ运行应用程序时,文件会被复制,因此当我进行更改时,我实际上是在更改原始文件,而不是正在运行的应用程序使用的文件。

PS:我正在使用Maven,IntelliJ IDEA 15和Spring Boot 1.3.3以及嵌入式Tomcat服务器。我不确定 IntelliJ 运行什么命令来启动应用。IDE 正在“自动”处理此情况。也许我需要更改运行配置?


答案 1

您需要在IntelliJ中打开几个功能才能使此功能正常工作。

首先,您需要将一个项目特定的设置应用于要在其中使用 devtools 的任何项目。转到“首选项”>编译器“,然后启用”自动生成项目”。

下一个设置是适用于所有项目的 IDEA 注册表设置。

  • 在 macOS (OSX) 中,按 (在 Windows 中)Shift+Command+AShift+Ctrl+A
  • 在出现的搜索框中键入“注册表”,然后选择注册表将其打开。
  • Lookup compiler.automake.allow.when.app.running 并启用它。

之后,重新启动应用。您会注意到,项目会随着您所做的每一项更改而不断重新生成。在浏览器中签出结果时,您将看到静态文件和代码都已更新。


答案 2

对于Windows用户,步骤是:
1)转到文件>设置,然后转到“构建,执行,部署”>编译器并启用“自动制作项目”标志。
2)按Ctrl-Alt-Shift-/,然后从出现的菜单中选择“注册表”。启用 compiler.automake.allow.when.app.running 标志。
3)启动/重新启动应用程序并观察静态内容重新加载。


推荐