0
点赞
收藏
分享

微信扫一扫

IDEA 热部署配置 HotSwapAgent-IntelliJ-IDEA-plugin

HotSwapAgent-IntelliJ-IDEA-plugin


IDEA 热部署配置 HotSwapAgent-IntelliJ-IDEA-plugin_jar

hotswaplogo

·Hot Swapping·

Our work is fun, but we don't want to waste our time waiting when our latest changes will be deployed on application server!

You can reload classes changed during debugging without need to restart the entire application using the HotSwap mechanism ​​Command+Shift+F9​​ in IntelliJ IDEA.


IDEA 热部署配置 HotSwapAgent-IntelliJ-IDEA-plugin_大数据_02

jvm_hotswap_ok

​BUT!​​​ At the moment due to original limitations of Java SDK the ​​Hot​​Swapping is possible ONLY if the method body is altered.

In all other cases (like changing method or class signature), the class reload is ​​impossible​​ and the corresponding error message appears.


IDEA 热部署配置 HotSwapAgent-IntelliJ-IDEA-plugin_maven_03

jvm_hotswap_fail

Solution

We need to use special java agent together with our JVM to enhance ability of reloading of changed classes. For example:

  1. ​​JRebel​​​ (too expensive​​​$550​​​ :fearful: per year per user)
  2. ​​Spring-Loaded​​​ (cannot work properly with java 8 and​​crash JVM​​​ :dizzy_face:, the Spring team propagates the "Restart application on file-change"-approach of​​spring-boot-devtools​​ for Spring Boot)
  3. ​​FakeReplace​​​ (​​No JDK10+ support yet​​)
  4. ​​RelProxy​​ (Dead? No support for JDK8+)
  5. ​​DCEVM​​​ (free-opensource-really​​hot​​ :grinning:)

We will choose: ​​DCEVM + Hotswap Agent​​ :thumbsup:

DCEVM Installation

steps:

1. Download ​​latest release of DCEVM Java patch​​​ and launch the installer with sudo(e.g. ​​sudo java -jar DCEVM-light-8u51-installer.jar​​). Currently you need to select correct installer for Java 8.

2. Select java installation directory on your disc and press "Install DCEVM as altjvm" button. JDK version ​​1.8.0_45​​​ is recommended. ​​download here​​

IDEA 热部署配置 HotSwapAgent-IntelliJ-IDEA-plugin_maven_04

DCEVM

3. Download ​​latest release of Hotswap agent jar​​​, unpack ​​hotswap-agent.jar​​ and put it anywhere on your disc. For example: C:\java\hotswap-agent.jar

4. Installation is done!

5. More info ​​here​​

Start with ​​Hot​​SwapAgent plugin for IntelliJ IDEA.

steps:

1. Install HotSwapAgent ​​plugin​​ for IntelliJ IDEA.

[图片上传失败...(image-cda5ba-1601023884060)]

2. Enable HotSwapAgent plugin for all configurations (or one by one).

IDEA 热部署配置 HotSwapAgent-IntelliJ-IDEA-plugin_java_05

enable

3. Start the application in DEBUG mode. You will see HOTSWAP AGENT notification in your console in case if setup was correctly done.

[图片上传失败...(image-74bfa5-1601023884060)]

4. Be sure that you have ​​"Reload classes after compilation: Always"​​ ON in IntelliJ IDEA in HotSwap section in your IDEA preferences.

IDEA 热部署配置 HotSwapAgent-IntelliJ-IDEA-plugin_jar_06

image

5. To re-deploying changed classes in IDEA press keys combination (: ​​Command+Shift+F9​​​/ ⊞: ​​Ctrl+Shift+F9​​) to compile the current file

:information_source: Instead of compiling the classes manually you can use the ​​Save Action plug-in​​, which can trigger the compilation automatically and thus enabling "hotswap on save".

Happy:heart: ​​Hot​​ Swapping!

  1. ​change​​​ method name & then press (: ​​Command+Shift+F9​​/ ⊞: ​​Ctrl+Shift+F9​​)
  2. ​add new​​​ method & then press (: ​​Command+Shift+F9​​/ ⊞: ​​Ctrl+Shift+F9​​)
    IDEA 热部署配置 HotSwapAgent-IntelliJ-IDEA-plugin_jedis_07change_02

More info: ​​DCEVM​​​ & ​​HotswapAgent​​


举报

相关推荐

0 条评论