在构建我的第一个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正在自动处理这个"。也许我需要改变我的运行配置?
答案 0 :(得分:83)
您需要在IntelliJ中启用一些功能才能使其正常工作。
首先,您需要在要使用devtools的任何项目中应用项目特定设置。转到首选项>编译并启用"自动生成项目。"
下一个设置是适用于所有项目的IDEA注册表设置。
Shift+Command+A
(Windows中为Shift+Ctrl+A
)之后,重启您的应用。您会注意到,项目会随着您所做的每一项更改而不断重建。当您在浏览器中查看结果时,您将看到静态文件和代码都已更新。
答案 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)