首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >IDEA 热部署配置 HotSwapAgent-IntelliJ-IDEA-plugin

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

作者头像
一个会写诗的程序员
发布2020-09-28 11:43:09
1.5K0
发布2020-09-28 11:43:09
举报

HotSwapAgent-IntelliJ-IDEA-plugin

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.

jvm_hotswap_ok

BUT! At the moment due to original limitations of Java SDK the HotSwapping 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.

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-reallyhot :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

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 HotSwapAgent 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).

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.

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)

change_02

More info: DCEVM & HotswapAgent

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • HotSwapAgent-IntelliJ-IDEA-plugin
  • ·Hot Swapping·
  • Solution
  • DCEVM Installation
    • Start with HotSwapAgent plugin for IntelliJ IDEA.
      • Happy:heart: Hot Swapping!
        • More info: DCEVM & HotswapAgent
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档