IDEA+JRebel实现全自动热部署的方法步骤
作者:yiyayiya 发布时间:2023-11-29 13:53:30
简述:JRebel是一款JVM插件,它使得Java代码修改后不用重启系统,立即生效。IDEA上原生是不支持热部署的,一般更新了 Java 文件后要手动重启 Tomcat 服务器,才能生效,特别影响开发效率。目前对于IDEA热部署最好的解决方案就是安装JRebel插件。
下载安装JRebel
IDEA 依次打开 File | Settings | Plugins → 搜索JRebel进行安装并重启IDEA
激活JRebel
方法一:JRebel是一款收费的服务,可以通过官网进行激活码购买。
方法二:通过github项目进行激活。项目地址 https://github.com/ilanyu/ReverseProxy/releases/latest
这里推荐将代理搭建在自己的服务器上
# 下载镜像
docker pull ilanyu/golang-reverseproxy
# 以后台方式启动镜像,端口映射为8888(端口请自行修改)
docker run --name jrebel -d -p 8888:8888 ilanyu/golang-reverseproxy
在线生成GUID地址
搭建成功后激活地址为: http://你的服务器ip:8888/{ GUID }
当然你的服务器还可以进行域名绑定,docker也可启用Https服务,激活地址可变为https://域名/{ GUID },
此方式自行探索,我这里就不演示了。
打开IDEA开始激活JRebel(初次激活可能不太一样,但只要进入到激活面板就行)
点击Change license,进行已激活。激活成功界面
激活后一定要手动切换到离线模式,可离线180天,可随时重新点下“Renew Offline Seat”刷新激活周期,180天后激活状态会重新刷新 。
简单使用
激活后,菜单中会出现对应图标,你就可以通过JRebel启动你的项目
启动之前需要添加rebel.xml(你要热部署哪个项目就直接勾选,会自动为你进行配置,rebel.xml里默认配置了两个路径,作用为监控变化)
正式启动,项目需要正确配置,例如使用Tomcat启动的项目,IDEA中的Tomcat依然要正确配置,启动时选择Run with JRebel而不是选择从前的run,JRebel会帮你启动Tomcat并热部署。
JRebel热部署
不生效解决打开 File | Settings | Build, Execution, Deployment | Compiler 勾选自动编译
Shift+Ctrl+Alt+/,选择Registry 勾选上compiler.automake.allow.when.app.running
检查是否添加了rebel.xml
手动编译当前文件 Ctrl + Shift + F9
到此教程结束,修改代码后就不用每次重启tomcat
来源:https://segmentfault.com/a/1190000021061935


猜你喜欢
- C++的函数指针(function pointer)是通过指向函数的指针间接调用函数。相信很多人对指向一般函数的函数指针使用的比较多,而对指
- 现在一些app通常会在头部放一个广告位,底部放置一行小圆圈指示器,指示广告位当前的页码,轮播展示一些图片,这些图片来自于网络。这个广告位ba
- MyBatis Xml映射文件字符串替换字符串替换默认情况下,使用 #{} 格式的语法会导致 MyBatis 创建 PreparedStat
- 在Android开发中,录入信息是最基本的操作,使用非常广泛。但是Android对输入法弹出/收起的支持,并不是很好。对弹出,提供了forc
- 本文实例讲述了Android判断网络类型的方法。分享给大家供大家参考,具体如下:判断网络类型是wifi,还是3G,还是2G网络,对不同的网络
- 在前面几篇文章中,我们详细介绍了Androi
- 正则表达式是一种描述词素的重要表示方法。虽然正则表达式并不能表达出所有可能的模式(例如“由等数量的 a 和 b 组成的字符串”),但是它可以
- 本文实例讲述了java swing实现的扫雷游戏及改进版。分享给大家供大家参考,具体如下:版本1:package awtDemo;impor
- 先看下效果图:这个需要用到1个开源的 库,这个后面也会说下的。工程目录:1. MainActivity.javapublic class M
- 概述早期的 Android 系统不完善,导致 App 侧有很多空子可以钻,因此它们有着有着各种各样的姿势进行保活。譬如说在 Android
- 前文传送门:异线程下回收对象获取异线程释放对象上一小节分析了异线程回收对象, 原理是通过与stack关联的WeakOrderQueue进行回
- 流行的应用的导航一般分为两种,一种是底部导航,一种是侧边栏。说明IDE:AS,Android studio;模拟器:genymotion;实
- 目录一、单例模式饿汉模式懒汉模式懒汉模式二、堵塞队列实现BlockingQueue三、定时器总结一、单例模式单例模式是一种设计模式,针对一些
- 一、效果图:二、导入 jar 包1.由于这是大神写好封装起来的一个框架,所有我们使用前得先下载相关的 jar 包第一种:maven<!
- 2011年6月iBatis 更名为 MyBatis,从 iBatis 到 MyBatis,不只是名称上的变化,MyBatis 提供了更为强大
- 一、背景在我们编写程序的过程中,程序中可能随时发生各种异常,那么我们如何优雅的处理各种异常呢?二、需求1、拦截系统中部分异常,返回自定义的响
- 本文实例讲述了C#实现HTTP下载文件的方法。分享给大家供大家参考。主要实现代码如下:/// <summary>/// Http
- 将通用算法放入具体类(HeapSorter),并将通用算法必须调用的方法定义在接口(HeapSorterHandle)中,从这个接口派生出D
- 一、注解是什么Java 注解用于为 Java 代码提供元数据,看完这句话也许你还是一脸懵逼,用人话说就是注解不直接影响你的代码执行,仅提供信
- 本文实例讲述了C#控制台下多线程实现方法。分享给大家供大家参考。具体如下:class Program{ static void