Spring boot devtools - 静态内容重新加载在IntelliJ中不起作用

时间:2016-03-09 15:25:41

标签: java spring intellij-idea spring-boot

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

这非常耗时。

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

我阅读了所有关于spring-boot-devtools的内容,并将其安装在我的POM中,但是hotswapping没有缝合工作。我仍然需要重新启动整个应用程序以查看Javascript或CSS文件更改。

当应用开始时,我可以看到行LiveReload server is running on port 35729,因此spring-boot-devtools必须做某事......

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

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

PS:我使用Maven,IntelliJ IDEA 15和Spring Boot 1.3.3与嵌入式Tomcat服务器。我不确定IntelliJ运行什么命令来启动应用程序。 IDE正在自动处理这个"。也许我需要改变我的运行配置?

5 个答案:

答案 0 :(得分:83)

您需要在IntelliJ中启用一些功能才能使其正常工作。

首先,您需要在要使用devtools的任何项目中应用项目特定设置。转到首选项>编译并启用"自动生成项目。"

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

  • 在macOS(OSX)中,按Shift+Command+A(Windows中为Shift+Ctrl+A
  • Type" Registry"在出现的搜索框中,选择注册表将其打开。
  • 查找 compiler.automake.allow.when.app.running 并启用它。

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

答案 1 :(得分:14)

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

答案 2 :(得分:1)

对于mac用户,我必须按 Command + Shift + A

在Step1和Step2之后重新启动INTELLIJ,如果没有注册表选项,则重新启动INTELLIJ。

答案 3 :(得分:0)

在Linux上,按:

Ctrl - Alt - Shift - /

答案 4 :(得分:0)

你可以像下面这样:

  1. 首先 打开首选项.../设置... -> 构建、执行、部署 -> 编译器并允许自动构建项目。图像看起来像

enter image description here

  1. 第二,我们更改注册表配置。对于 ma​​cOS,请按 command+shift+A,或者如果您使用的是 Windows,请按 Ctrl+Shift+A,然后搜索注册表。 启用compiler.automake.allow.when.app.running。图像如下图

注册表图像看起来像..

enter image description here

compiler.automake.allow.when.app.running 启用图像的样子 enter image description here

然后享受..