Intellij IDEA 4種配置熱部署的方法【轉】【補】


 

熱加載

熱加載可以使代碼修改后無須重啟服務器,就可以加載更改的代碼。(其實分java和非java代碼,本處可以讓java代碼立即生效且不重啟服務)

第1種:修改服務器配置,使得IDEA窗口失去焦點時,更新類和資源

菜單Run -> EditConfiguration , 然后配置指定服務器下,右側server標簽下on frame deactivation = Update classes and resource。

優點:簡單

缺點:基於JVM提供的熱加載僅支持方法塊內代碼修改,只有debug模式下,並且是在idea失去焦點時才會出發熱加載

 

熱部署

熱部署修改代碼后,需要重啟服務器,才能加載更改的java代碼。(本處,可以讓java代碼和非java代碼,都生效,但必須重啟服務)

 

第2種:使用springloaded.jar包

a. 下載jar包,github: https://github.com/spring-projects/spring-loaded

b. 啟動應用時添加VM啟動參數:-javaagent:/home/lkqm/.m2/repository/org/springframework/springloaded/1.2.7.RELEASE/springloaded-1.2.7.RELEASE.jar -noverify

優點:對Spring系列框架支持好(不含Spring boot), 支持 成員級別的修改(增刪改方法、字段、注解),支持對枚舉值集。使用這種形式加載springloaded經過測試,延遲不算高, java代碼修改后控制台看不到重啟信息卻也能生效.

缺點:與優點相對

 

 

 

 

 更簡單的方式

maven插件中使用pom.xml配置springloaded插件的依賴

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <dependencies>
                    <dependency>
                        <groupId>org.springframework</groupId>
                        <artifactId>springloaded</artifactId>
                        <version>1.2.6.RELEASE</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>

    </build>

然后在終端使用命令行 mvn spring-boot:run啟動,而通過Application.run方式啟動的會無效,因為通過應用程序啟動時,已經繞開了Maven插件機制。

 

 

第3種:使用spring-boot-devtools提供的開發者工具

 <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <!-- 有人說optional一定要配置成true才有效, 但我調試完感覺不加optional也有效 -->
            <optional>true</optional> 
 </dependency>

 

優點:簡單,支持Spring-boot項目,支持成員級別的修改熱部署。

缺點:只支持spring-boot項目。

相關: application.properties配置

#熱部署默認會重啟
spring.devtools.restart.enabled=true
#添加那個目錄的文件需要restart
spring.devtools.restart.additional-paths=src/main/java
#排除那個目錄的文件不需要restart
spring.devtools.restart.exclude=static/**,public/**

 

 

 

第4種:使用Jrebel插件實現熱部署(該插件14天免費試用)

在線安裝:菜單File -> Setting -> Plugin, 點擊右側底部 Browse repositories, 彈出框頂部輸入:JReble for Intellij, 選中安裝即可。

優點:強大,對各類框架支持,並且提供IDE插件的方式。

后3種方法是基於類加載機制來實現熱加載的,因此你修改完成代碼后必須重新編譯當前代碼,才能觸發熱部署。

 

idea操作

Eclipse默認就支持了自動編譯,而在Intellij IDEA中默認是關閉了自動編譯的,可以按照如下2步設置開啟:

  • IDEA開啟項目自動編譯,進入設置,Build,Execut, Deployment -> Compiler 勾選中左側的Build Project automatically

 

 

 

  • IDEA開啟項目運行時自動make, ctrl + shift + alt + / 命令:registry -> 勾選compiler.automake.allow.when.app.running

 

 

 

參考自:

Intellij IDEA 4種配置熱部署的方法==>https://www.cnblogs.com/a8457013/p/7866536.html

 

其它參考

 

spring boot修改代碼后無需重啟設置,在開發時實現熱部署==>https://blog.csdn.net/testcs_dn/article/details/79929886

 

SpringBoot入門-2(兩種熱部署方式)==>https://www.cnblogs.com/xswz/p/7350562.html

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM