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
猜你喜欢
- 前言1.Map里面只能存放对象,不能存放基本类型,例如int,需要使用Integer2.Map集合取出时,如果变量声明了类型,会先进行拆箱,
- 阿里、华为、腾讯Java技术面试题精选,具体内容如下JVM的类加载机制是什么?有哪些实现方式?类加载机制:类的加载指的是将类的.class文
- 案例sql脚本DROP DATABASE IF EXISTS `javacode2018`;CREATE DATABASE `javacod
- Java NIO(New IO)是Java 1.4版本中引入的一套全新的IO处理机制,与之前的传统IO相比,NIO具有更高的可扩展性和灵活性
- 1. pom.xml文件配置<?xml version="1.0" encoding="UTF-8&qu
- 0x00:前言参考之前的《MyBatis 中 SqlMapConfig 配置文件详解》记了一下 MyBatis 中的核心配置文件各个标签的作
- MyBatis插入Insert、InsertSelective的区别逆向自动生成的mybatis对应配置Mapper文件里面,有两个方法,分
- 最近要做一个网站,要求实现验证码程序,经过不断调试,终于成功实现功能。一、验证码生成类生成验证码的话需要用到java的Graphics类库,
- 从Java 5开始,Java语言对方法参数支持一种新写法,叫 可变长度参数列表,其语法就是类型后跟...,表示此处接受的参数为0到多个Obj
- 在 MyEclipse 的可视化 Swing 中,有 JTable 控件。JTable 用来显示和编辑常规二维单元表。那么,如何将 数据库S
- 前言Java8 由Oracle在2014年发布,是继Java5之后最具革命性的版本。Java8吸收其他语言的精髓带来了函数式编程,lambd
- 1、为什么使用缓存  我们知道内存的读取速度远大于硬盘的读取速度。当需要重复地获取相同数据时,一次一次地
- 参考:How to catch an Exception from a threadIs there a way to make Runna
- 条件:1、android:ellipsize=”marquee”2、TextView必须单行显示,即内容必须超出TextView
- 引言:编写高效简洁的C语言代码,是许多软件工程师追求的目标。本文就工作中的一些体会和经验做相关的阐述,不对的地方请各位指教。第1招:以空间换
- 1、普通用户与系统管理员用户的权限要有严格的区分。如果一个普通用户在使用查询语句中嵌入另一个Drop Table语句,那么是否允许
- Java Memory Model简称JMM, 是一系列的Java虚拟机平台对开发者提供的多线程环境下的内存可见性、是否可以重排序等问题的无
- Java调用接口获取json数据保存到数据库今天给大家带来一个调用接口,来获取数据解析后再保存到数据库中的业务,业务中的Mapper和实体类
- 很多学习Android程序设计的人都会发现每个人对代码的写法都有不同的偏好,比较明显的就是对控件响应事件的写法的不同。因此本文就把这些写法总
- 前言我们知道,IOC是Spring的核心。它来负责控制对象的生命周期和对象间的关系。举个例子,我们如何来找对象的呢?常见的情况是,在路上要到