idea實現(xiàn)熱部署

一.簡介:
熱部署就是正在運(yùn)行狀態(tài)的應(yīng)用,修改了他的源碼之后,在不重新啟動的情況下能夠自動把增量內(nèi)容編譯并部署到服務(wù)器上,使得修改立即生效。熱部署為了解決的問題有兩個, 一是在開發(fā)的時候,修改代碼后不需要重啟應(yīng)用就能看到效果,大大提升開發(fā)效率;二是生產(chǎn)上運(yùn)行的程序,可以在不停止運(yùn)行的情況下進(jìn)行升級,不影響用戶使用。

二.idea開啟熱部署:
a.Tomcat熱部署

  1. 在頂部找到程序運(yùn)行操作欄, 點擊Edit Configurations


    image.png

    2.點擊你要配置的tomcat,點擊deployment,點擊”+“


    image.png

    3.然后選擇你要部署的war包,熱部署必須要選擇帶有exploded的war包
    image.png

    4.再切換回Server,按照下圖標(biāo)注配置


    image.png

    配置完后點擊ok即可啟動你的tomcat,然后改一下jsp、java文件實現(xiàn)熱部署配置是否成功
    最后提示一下,Idea熱部署并非絕對實時, 還是會有延時的,假如你手速快的話可能會出現(xiàn)改了并沒有馬上生效。所以此時不要懷疑熱部署沒有配置成功,稍微等一會你會看到開發(fā)工具左下角會有一個class reload的提示,出現(xiàn)這個提示才說明已經(jīng)熱部署完成了。
    image.png

    如果你想馬上生效的話,可以點擊下圖標(biāo)標(biāo)注的按鈕,或者使用快捷鍵Ctrl + F10
    image.png

    b.Spring boot程序熱部署
    在頂部找到程序運(yùn)行操作欄, 點擊Edit Configurations,點擊要配置的程序,按照下圖標(biāo)注地方配置
    image.png

    配置完后點擊ok即可啟動你的程序,java文件實現(xiàn)熱部署配置是否成功。

但配置到這里只是會使java文件和其他靜態(tài)資源熱部署成功,但如果您的Spring boot程序是web程序,并且有jsp或Thymeleaf等頁面模板引擎,則還需要在Spring boot的配置文件中配置。
如果是jsp, 在application.yml文件下加入配置


image.png

如果是Thymeleaf, 則在application.yml文件加入spring:thymeleaf:cache: false 配置
Spring boot程序除了通過上述步奏實現(xiàn)熱部署,還可以通過給程序添加spring-boot-devtools依賴實現(xiàn)。

  <!-- 熱部署 -->
<dependency> 
    <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-devtools</artifactId> 
    <version>2.0.4.RELEASE</version> 
   <!-- 啟用 -->
<optional>true</optional> 
</dependency>

c.其他配置
如果你通過上面的步驟還沒實現(xiàn)想要的熱部署效果,可以繼續(xù)做以下兩個配置
1.開啟Java Compiler的自動build


image.png

2.按住ctrl + shift +alt + / 選擇Registry,按照下圖標(biāo)注配置


image.png

文章來自:
https://blog.csdn.net/qq_16148137/article/details/99694566

三.熱啟動在pom文件中報錯解決
1.在本地倉庫地址:repository\org\springframework\boot\spring-boot-devtools 刪除,重新下載,然后進(jìn)行maven update(右擊項目,選擇maven在下方reimport)
2.在pom文件中加入如下代碼

 <repositories>
        <repository>
            <id>spring-releases</id>
            <name>Spring Releases</name>
            <url>https://repo.spring.io/libs-release</url>
        </repository>
    </repositories>
 <pluginRepositories>
        <pluginRepository>
            <id>spring-releases</id>
            <name>Spring Releases</name>
            <url>https://repo.spring.io/libs-release</url>
        </pluginRepository>
    </pluginRepositories>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容