Spring boot devtools – 静态内容重新加载在IntelliJ中不起作用
在构建我的第一个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:我正在使用嵌入式Tomcat服务器的Maven,IntelliJ IDEA 15和Spring Boot 1.3.3。 我不确定IntelliJ运行什么命令来启动应用程序。 IDE正在“自动”处理此问题。 也许我需要改变我的运行配置?
您需要在IntelliJ中启用一些function才能使其工作。
首先,有一个项目特定设置,您需要在任何想要使用devtools的项目中应用。转到首选项>编译器并启用“自动生成项目”。
下一个设置是适用于所有项目的IDEA注册表设置。
- 在OSX中,按
Shift+Command+A
(Windows中的Shift+Ctrl+A
) - 在出现的搜索框中键入“注册表”,然后选择注册表将其打开。
- 查找compiler.automake.allow.when.app.running并启用它。
之后,重新启动您的应用。 您会注意到,项目会随着您所做的每一项更改而不断重建。 当您在浏览器中查看结果时,您将看到静态文件和代码都已更新。
不久前我还写了一篇关于此的博客文章。 http://patrickgrimard.com/2016/01/18/spring-boot-devtools-first-look/
对于Windows用户,步骤如下:
1)转到文件 – >设置,然后转到“构建,执行,部署” – >编译器并启用“自动生成项目”标志。
2)按Ctrl-Alt-Shift- /并从出现的菜单中选择“注册表”。 启用compiler.automake.allow.when.app.running标志。
3)启动/重启应用程序并观察静态内容重新加载。
对于mac用户,我不得不按下Command + Shift + A.
并在Step1和Step2之后重新启动INTELLIJ,否则注册表选项不会出现。
在Linux上,按:
Ctrl – Alt – Shift – /
- 如何停止IntelliJ中的所有进程?
- 无法在IntelliJ Idea 2016.1.1中导入maven项目
- IntelliJ,是否可以像NetBeans一样“制作控制器”?
- 在Gradle构建之后,Intellij Idea不会在消息工具窗口中显示错误
- IntelliJ IDEA @SuppressWarnings用于检查工具名称
- Intellij – 将默认输出路径设置为gradle输出
- 如何使用IntelliJ将外部库的源和javadoc添加到gradle中?
- 如何为Android Studio编写插件?
- 如何使用Selenium / TestNG java文件中的IntelliJ制作可执行jar文件?