idea支持热部署
前言
虽然 IDEA 本身支持热部署,但功能较弱,只支持方法内部代码更新,如果新增方法则需要重启项目,使用 Jrebel 可以实现完全的项目热部署
热部署原理很简单,就是重新编译改动后的java文件生成新的class,再将class文件加载到内存,jdk自带的classloader将class文件加载内存中后就不会再重新加载,热部署工具使用自己的classloader,每次加载都去查看是否有变化,有变话则重新加载class。
本文介绍使用Jrebel插件进行热部署
JRebel是一套JavaEE开发工具。JRebel允许开发团队在有限的时间内完成更多的任务修正更多的问题,发布更高质量的软件产品。 JRebel是收费软件,用户可以在JRebel官方站点下载30天的评估版本。
Jrebel 可快速实现热部署,节省了大量重启时间,提高了个人开发效率。
JRebel是一款JAVA虚拟机插件,它使得JAVA程序员能在不进行重部署的情况下,即时看到代码的改变对一个应用程序带来的影响。JRebel使你能即时分别看到代码、类和资源的变化,你可以一个个地上传而不是一次性全部部署。当程序员在开发环境中对任何一个类或者资源作出修改的时候,这个变化会直接反应在部署好的应用程序上,从而跳过了构建和部署的过程,每年可以省去部署用的时间花费高达5.25个星期。
安装步骤
-
安装jbrebel插件
-
下载激活文件
前往 Jrebel License Server 下载 ReverseProxy_darwin_amd64 该文件是 mac 可使用的
-
为文件添加权限并运行
1 2
chmod 777 ./ReverseProxy_darwin_amd64 $bash ./ReverseProxy_darwin_amd64
运行成功后显示如下内容:
1
2020/10/28 13:12:45 Listening on 0.0.0.0:8888, forwarding to http://idea.lanyus.com:80
-
前往 Jrebel 配置界面按如下输入
地址后面需要跟一串 GUID 验证,邮箱可随意输入,成功激活后如下所示:
-
将Jrebel设置为离线模式,也就是上图中Work offline按钮,可确保180天有效
- 180 天后重复上述操作即可
- 如果不设置为离线模式,终端运行的程序就不能退出,一旦退出激活就会失效
使用
下载下来自带jrebel和xrebel,介绍如下:
- JRebel:修改完代码,不想重启服务,就使想代码生效。
- XRebel:请求中,各个部分代码性能监控。例如:方法执行时间,出现的异常,SQL执行时间,输出的Log,MQ执行时间等。
平时我们只使用jrebel功能即可
- run和debug使用rebel run、rebel debug
- 重新编译文件,cmd+shift+f9重新编译单个java文件,cmd+f9编译整个工程
注意:修改了配置文件之后还是需要重新部署,比如日志级别。
静态文件修改后一般直接能看到变化,像springboot模板文件需要将cache设置为false后就能看到变化