0

我有一个网络应用程序。我主要使用记事本++进行开发。我需要使用 Intellij 来运行两个 Tomcat servlet。我的理想设置是在 IntelliJ 中运行两个 serlet,然后最小化并且不再使用 intellij(即在 notepad++ 中进行更改,保存。然后只需刷新我的浏览器选项卡)。

为了避免每次更改代码时都必须重新运行 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

THEN 在调试模式下运行 tomcat servlet 时

完成上述所有操作后,它的工作原理是:当 servlet 在 intellij 中运行时 - 更改 UI 代码 - 保存它(在我的情况下,我使用的是 notepad++ 而不是 intellij - 返回 intellij(只需将窗口聚焦) -然后返回浏览器并刷新浏览器

目前,只有在刷新浏览器之前让 Intellij 窗口成为焦点时,才会应用我的代码更改。是否可以设置一些东西,以便 intellij 不需要成为焦点?

即打开intellij,运行我的两个servlet,然后将其最小化,不再碰它。我想忽略它并继续使用我的浏览器和记事本++进行开发工作

4

2 回答 2

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>
于 2019-12-01T20:06:06.190 回答
0

据我所知,这是不可能的。Spring boot Devtools 将在项目构建后立即重新加载。

在 IntelliJ 中,项目不会自动重建,但可以通过启用自动构建项目( compiler.automake.allow.when.app.running) 来配置。

但是,即使您启用此功能,IntelliJ 也只会在检测到更改时自动构建它。如果您在 IntelliJ 中更改文件,这将被视为更改。但是,当您在 Notepad++ 等其他编辑器中更改文件时,它不会。

幸运的是,IntelliJ 会在特定时间从磁盘同步文件。默认情况下,IntelliJ 配置了在框架或编辑器选项卡激活时同步文件,因此它会在打开编辑器时立即同步文件。

这就是你正在经历的。但是,您不能将同步更改为始终发生,因为这需要相当多的 I/O 和 CPU。有一些插件,例如Auto Sync 插件,可以让您自定义同步发生的时间。

或者,如果您在 IntelliJ(而不是 Notepad++)中编辑文件,则不需要同步,因此您不会遇到此问题。

于 2017-08-03T09:19:54.283 回答