我有一个网络应用程序。我主要使用notepad ++进行开发。我需要使用Intellij来运行两个Tomcat servlet。我理想的设置是在IntelliJ中运行两个serlet然后最小化并且再也不使用intellij(即在记事本++中进行更改,保存。然后只刷新我的浏览器选项卡)。
为了阻止我每次更改代码时重新运行servlet,我设置了springboot devtools并在下面添加了配置:
我按照这个链接:https://dzone.com/articles/spring-boot-application-live-reload-hot-swap-with(必须改变第一步做同样的事情,但是使用gradle即添加
compile("org.springframework.boot:spring-boot-devtools")
到gradle.build(正确的,不是任何随机的)。
然后在完成链接的其余步骤后,将此行添加到application.properties:
spring.thymeleaf.cache= false
然后在DEBUG模式下运行tomcat servlet
完成上述所有操作后,这可以通过以下方式实现:当servlet在intellij中运行时 - 你的UI代码更改 - 保存它(在我的情况下我使用的是notepad ++而不是intellij) - 回到intellij(只需将窗口带入焦点) - 然后返回浏览器并刷新浏览器
目前,只有在刷新浏览器之前将Intellij窗口置于焦点时才会应用我的代码更改。有可能设置一些东西,因此intellij不需要关注吗?
即。打开intellij,运行我的两个servlet,然后最小化它,再也不要再触摸它。我想忽略它并继续使用我的浏览器和记事本++进行开发工作
答案 0 :(得分:0)
据我所知,这是不可能的。一旦项目建成,Spring引导Devtools就会热重新加载。
在IntelliJ中,项目不会自动重建,但可以通过启用自动构建项目(compiler.automake.allow.when.app.running
)来配置。
但是,即使启用此功能,IntelliJ也只会在检测到更改时自动构建它。如果您在IntelliJ中更改文件,这将被视为一个更改。但是,当您在Notepad ++等其他编辑器中更改文件时,它不会。
幸运的是,IntelliJ在某些时候同步磁盘中的文件。默认情况下,IntelliJ配置为在框架或编辑器选项卡上激活同步文件,因此一旦打开编辑器,它就会同步文件。
这就是您所遇到的。但是,您无法将同步更改为始终发生,因为这需要相当多的I / O和CPU。有一些插件,如Auto Sync plugin,可以允许您自定义同步发生的时间。
或者,如果您在IntelliJ中编辑文件(而不是在Notepad ++中),则不需要同步,因此您不会遇到此问题。
答案 1 :(得分:0)
我在一个教程中发现了这一点,这就是你可以做的。
Settings --> Build-Execution-Deployment --> Compiler --> enable "Make Project Automatically".
Restart IntelliJ.
在IntelliJ的早期版本中
Press ctrl+shift+A and search for the registry. Enable following configuration compiler.automake.allow.when.app.running
阅读: https://dzone.com/articles/spring-boot-application-live-reload-hot-swap-with
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>