Intellij IDEA四種熱部署配置

熱加載

熱加載可以使代碼修改後無須重啓服務器,就可以加載更改的代碼。(其實分 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

作者:whatlonelytear
本文地址:https://www.cnblogs.com/whatlonelytear/p/10370767.html
歡迎轉載,請在明顯位置標明出處及鏈接。

熱加載可以使代碼修改後無須重啓服務器,就可以加載更改的代碼。(其實分 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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章