0

我有一個web應用程序。我主要使用記事本++進行開發。我需要使用Intellij來運行兩個Tomcat servlet。我的理想設置是在IntelliJ中運行兩個serlet,然後再次最小化並再次不使用intellij(即,在記事本++中進行更改,保存,然後刷新我的瀏覽器選項卡)。在後臺運行Intellij/Tomcat/SpringBoot DevTools(即沒有專注於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.proper領帶:

spring.thymeleaf.cache= false 

然後在運行在調試模式下的tomcat的servlet

做上述所有的經過時,這個工程是:當程序中Servlet的IntelliJ運行 - 製作你的UI代碼更改 - 保存它(在我的情況我使用記事本++不intellij - 回到intellij(只是把窗口焦點) - 然後回到瀏覽器並刷新瀏覽器

目前,我的代碼更改將只適用於如果我帶Intellij窗口在刷新我的瀏覽器之前進入焦點。是否有可能設置某些東西使intellij不需要關注?

即打開intellij,運行我的兩個servlet,然後將其最小化,不再觸摸它。我想忽略它,繼續使用我的瀏覽器和記事本++進行開發工作

+0

如果您只是使用IntelliJ,會不會更容易?但要回答你的問題,這可能是不可能的。您所遵循的鏈接使您可以配置IntelliJ,以便它在檢測到更改時自動生成。 **然而**,IntelliJ最有可能只會在IntelliJ本身進行更改時檢測到更改。它偶爾會從磁盤重新加載,但我想只有在窗口處於活動狀態時纔會發生,以減少CPU和I/O的使用。如果您直接在IntelliJ中進行更改,則不會出現此問題。 – g00glen00b

回答

0

據我所知,這是不可能的。項目建成後,Spring Boot Devtools將立即重新加載。

在IntelliJ中,項目不會自動重建,但可以通過自動構建項目compiler.automake.allow.when.app.running)來配置該項目。

但是,即使啓用此功能,IntelliJ也只會在檢測到更改時自動構建它。如果您在IntelliJ中更改文件,則這將被視爲更改。但是,當您在另一個編輯器(如Notepad ++)中更改文件時,它不會。

幸運的是,IntelliJ在特定時間同步磁盤上的文件。默認情況下,IntelliJ配置爲在幀或編輯器選項卡激活上同步文件,因此只要編輯器打開,它就會同步文件。

這就是你正在經歷的。但是,您無法將同步更改爲始終發生,因爲這需要相當多的I/O和CPU。有一些插件,如Auto Sync plugin,這可能允許您在同步發生時自定義。

另外,如果你在IntelliJ(而不是在Notepad ++中)編輯文件,你不需要同步,因此你不會有這個問題。

+0

這是有道理的。我不想使用IntelliJ的主要原因是因爲它看起來非常內存密集。如果我打開了很多文件,我預計它會凍結在 – user3120554

+0

@ user3120554上,在這種情況下,您可能需要尋找更輕量級的Java編輯器,或者可以在Notepad ++中執行此操作。基本上所有你需要的是一個很好的集成,只要你改變了一些東西就會重建源文件。 – g00glen00b