[英]IntelliJ IDEA spring boot hot reload on manual save?
我的目標是:
在 IntelliJ IDEA 中禁用 spring 引導項目的自動保存
手動保存文件時始終熱重新加載項目
在我看來,同時實現這兩個目標是不可能的。
我可以通過修改這些設置來禁用 IntelliJ IDEA 中的自動保存:
Build, Execution, Deployment -> Compiler取消勾選 Build project automatically
另外我認為太需要的是修改這些選項:
Appearance & Behavior -> System Settings取消選中同步下的兩個保存文件(框架停用並自動保存文件)
我可以在 Mkyong 的幫助下啟用熱重載: Mkyong-help正如您從鏈接中看到的,它需要設置“自動構建項目”。 如果我執行這兩個步驟,那么應用程序將始終在編輯時保存,並且它將始終熱重新加載應用程序。
這太令人沮喪了,我認為 IntelliJ IDEA 是一個很好的現代 IDE,具有像熱重載這樣的工業核心功能,處理起來容易嗎?
問題是,我真的不想在我對文件所做的每次更改時熱重新加載我的應用程序! 因為那時它會持續熱重載,這會在大多數時候破壞應用程序。 太不必要了,浪費資源。 當我手動保存文件時,我總是想熱重載,這是許多其他編輯器的標准。 這個問題必須有一個解決方案,因為人們希望為他們的開發提供合理的熱重載。
據我了解,您的問題是您希望 spring 服務器在您進行更改時自動重新加載,然后手動保存它們。 對? 如果是這種情況,請按照我的步驟進行操作,希望您能得到所需。
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
dependencies {
compile("org.springframework.boot:spring-boot-devtools")
}
compiler.automake.allow.when.app.running
注冊表設置。 您可以使用快捷鍵Shift+Command+A
訪問 IntelliJ 中的注冊表,然后搜索注冊表。當您手動保存更改時,第 3 步將自動構建您的項目(制作項目)。
================================================== ====================== 這些步驟將強制 spring 服務器在通過您的 IDE 手動保存更改后重新啟動。 但是,即使服務器重新啟動,每次進行更改時也需要刷新瀏覽器。 要強制您的瀏覽器也自動刷新,您需要在瀏覽器中安裝一個名為 Live Reload 的擴展程序。 檢查此鏈接http://livereload.com/extensions/ 。 該鏈接將向您展示如何安裝此擴展程序,具體取決於您的瀏覽器。
In IntelliJ 2021.2 you only have to click this option https://youtrack.jetbrains.com/api/files/74-1125614?sign=MTYzMDgwMDAwMDAwMHwxMS04NzUyMzF8NzQtMTEyNTYxNHxON0lqdXpkVUo4ZG1VOGlqMjRsQkY3%0D%0AVjRXbHJlQ1oxM0hfaE0tVGd0cG9zDQo%0D%0A&updated=1627651335092
我正在使用以下版本的社區版
以下是我在手動保存時執行的熱重載步驟。
第1步在Maven依賴pom.xml中添加spring-boot-dev-tools依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
第2步
自動選擇構建的編譯器配置
步驟 3
手動保存時重新啟動的高級編譯器設置
這是一個簡單的工作流程,在 IDEA Ultimate Edition 中對我來說效果很好,並且在代碼熱交換時不會重新啟動部分應用程序:
這里的關鍵步驟是將On 'Update' action
為Hot swap classes and update trigger file if failed
這是工具提示對各種選項的解釋。 僅指定
Update classes or resources
會起作用,但您的應用程序的某些部分將被重新加載,但比從頭啟動應用程序要快得多。 有關說明,請參閱文檔的Restart vs Reload
部分。
Shift + F9
CTRL + F10
它將更新您剛剛更改的類和資源。 為了獲得好的結果,請禁用瀏覽器的緩存以避免看到舊版本的靜態資源。
如果您使用模板引擎,文檔提供了有關如何在不重新啟動容器的情況下重新加載它們的說明
Spring Boot 開發人員工具包含一個 LiveReload 服務器,它可以幫助您在內容更改時觸發瀏覽器重新加載。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.