一、概念
熱部署就是正在運行狀態的應用,修改了他的源碼之后,在不重新啟動的情況下能夠自動把增量內容編譯並部署到服務器上,使得修改立即生效。熱部署為了解決的問題有兩個, 一是在開發的時候,修改代碼后不需要重啟應用就能看到效果,大大提升開發效率;二是生產上運行的程序,可以在不停止運行的情況下進行升級,不影響用戶使用。
二、Idea開啟熱部署
本篇文章主要是介紹Idea這款開發工具的熱部署,而用Idea的人大多數都是用來開發java程序,當前流行的java程序主要有兩種,第一種是傳統的Web應用,依賴Tomcat這種web容器運行;第二種是Spring boot程序, 內嵌了運行環境。
2.1 Tomcat熱部署
a). 在頂部找到程序運行操作欄, 點擊Edit Configurations
b). 點擊你要配置的tomcat,點擊deployment,點擊”+“
c). 然后選擇你要部署的war包,熱部署必須要選擇帶有exploded的war包
d). 再切換回Server,按照下圖標注配置
配置完后點擊ok即可啟動你的tomcat,然后改一下jsp、java文件實驗熱部署配置是否成功。
最后提示一下,Idea熱部署並非絕對實時, 還是會有延時的,假如你手速快的話可能會出現改了並沒有馬上生效。所以此時不要懷疑熱部署沒有配置成功,稍微等一會你會看到開發工具左下角會有一個class reload的提示,出現這個提示才說明已經熱部署完成了。
當然, 如果你想馬上生效的話,可以點擊下圖標標注的按鈕,或者使用快捷鍵Ctrl + F10
2.2 Spring boot程序熱部署
a). 在頂部找到程序運行操作欄, 點擊Edit Configurations,點擊要配置的程序,按照下圖標注地方配置
配置完后點擊ok即可啟動你的程序,java文件實驗熱部署配置是否成功。
但配置到這里只是會使java文件和其他靜態資源熱部署成功,但如果您的Spring boot程序是web程序,並且有jsp或Thymeleaf等頁面模板引擎,則還需要在Spring boot的配置文件中配置。
如果是jsp, 在application.yml文件下加入配置
如果是Thymeleaf, 則在application.yml文件加入spring:thymeleaf:cache: false 配置
Spring boot程序除了通過上述步奏實現熱部署,還可以通過給程序添加spring-boot-devtools依賴實現。
<!-- 熱部署 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<version>2.0.4.RELEASE</version>
<!-- 啟用 -->
<optional>true</optional>
</dependency>
三、其他配置
如果你通過上面的步驟還沒實現想要的熱部署效果,可以繼續做以下兩個配置
3.1 開啟Java Compiler的自動build
3.2 按住ctrl + shift +alt + / 選擇Registry,按照下圖標注配置