• idea两种方式热部署


    我这里整理的 IDEA 热部署方式有两种,一是 IDEA 自带的,另一种是通过 JRebel 插件。其他方式如:使用 springloaded jar 包、 spring-boot-devtools 本文不做介绍

    一、IDEA 自带的

    修改服务配置,使得 IDEA 窗口失去焦点时,更新类和资源,具体步骤:

    菜单Run -> EditConfiguration , 然后配置指定服务器下,server标签下on frame deactivation = Update classes and resource。 如下图tomcat server

    IDEA两种热部署方式-打不死的小强

    缺点:这种方式是基于 JVM 提供的热加载,仅支持方法块内代码修改,只有 debug 模式下,并且是在 idea 失去焦点时(也即电脑切换到其他界面)才会触发热加载,相对加载速度缓慢 。

    二、使用 JRebel 插件

    1、安装 JRebel 插件

    在 IDEA 中一次点击 File->Settings->Plugins->Brows Repositories ;在搜索框中输入 JRebel 进行搜索 ,找到 JRebel for intellij ;install;安装好之后需要重启 IDEA 。如下图所示

    IDEA两种热部署方式-打不死的小强

    如果安装失败,提示 …was not installed: Cannot download …,则进行下面设置:
    找到 settings-> Appearance&Behavior -> System settings->updates 下面的 Use secure Connetion 去掉√

    IDEA两种热部署方式-打不死的小强


    2、激活 JRebel

    JRebel 并非免费的插件,需要激活之后才能使用。
    (1)首先到 github 上去下载一个破解软件,根据自己电脑下载指定版本,这里下载 windows x64 版本。 下载地址

    IDEA两种热部署方式-打不死的小强

    (2)双击运行下载好的软件,如下图,运行成功

    IDEA两种热部署方式-打不死的小强

    (3)在 IDEA 中一次点击 File->Settings->JRebel 并找到激活界面( 因为我的已经激活了,点击 change liense 进入激活界面) 

    (4)选择 JRebel activated 中的 Team URL
    第一行输入 http://127.0.0.1:8888/d3545f42-7b88-4a77-a2da-5242c46d4bc2
    第二行输入正确的邮箱格式(随意填写),例如: test@123.com
    勾选 I agree with… ,点击按钮验证激活
    提示:d3545f42-7b88-4a77-a2da-5242c46d4bc2为 UUID,可以自己生成,但是必须是 UUID

    IDEA两种热部署方式-打不死的小强

    (4)最后把 JRebel 设置为 offline 模式 点一下work offline

    IDEA两种热部署方式-打不死的小强

    说明:激活成功后就可以把激活软件关闭了。

    3、配置 IDEA

    JRbel 是基于类加载机制来实现热加载的,因此你修改完成代码后必须重新编译当前代码,才能触发热部署,Eclipse 默认就支持了自动编译,而在 Intellij IDEA 中默认是关闭了自动编译的,可以按照如下 2 步设置开启:

    (1)IDEA 开启项目自动编译,File->Settings->Build,Execut, Deployment -> Compiler 勾选中左侧的Build Project automatically

    IDEA两种热部署方式-打不死的小强

    (2)IDEA 开启项目运行时自动 make, ctrl + shift + a搜索命令:registry -> 勾选compiler.automake.allow.when.app.running

    IDEA两种热部署方式-打不死的小强IDEA两种热部署方式-打不死的小强

    4、配置 JRebel

    选择要启用 JRebel 热部署的 module,打开 View – Tool Windows – JRebel

    IDEA两种热部署方式-打不死的小强

    弹出 JRebel Panel,根据需要选择 module

    IDEA两种热部署方式-打不死的小强

    5、JRebel 热部署说明

    (1)启动项目要采用 Run with JRebel、Debug with JRebel。

    IDEA两种热部署方式-打不死的小强

    (2)JRebel 热部署触发

    1)JRebel 默认修改完代码,到了检测时间自动重新编译完成热部署。检测时间可以通过下面设置

    IDEA两种热部署方式-打不死的小强

    2)如果不想自动完成,可以通过取消 Enable IntelliJ automatic compilation 勾选√,如下图

    IDEA两种热部署方式-打不死的小强

    这样在修改代码后,需要通过 Ctrl + F9 (或菜单 Built->Build Project),才会触发。

    三、JRebel 使用中遇到的问题

    1、不能热加载

    问题:在使用中发现,代码明明更改了,包括增加了新的代码文件。但是无论手动触发、自动触发还是重启 tomcat。项目都不更新热加载。

    分析:后来在一次启动 tomcat 的时候突然发现,启动日志中显示的 JRebel 热加载监控路径不是当前项目的路径;

    IDEA两种热部署方式-打不死的小强

    接着想到,我这个项目是通过原来项目复制出来的,而该路径是原来项目的本地路径。于是明白之所有热部署不生效是因为 JRebel 监控是原来项目而不是当前项目。

    解决:搞清楚了原因,接下来,只需将 JRebel 所监控项目改为当前项目即可。

    File -> Project Structure… -> Modules -> JRebel -> Regenerate xml confguration 即可,如下图:

    IDEA两种热部署方式-打不死的小强

    JRebel 方式重启 tomcat 即可。

  • 相关阅读:
    jni中c代码调用java代码
    android 自动生成jni C语言头文件
    android jni下c文件怎么输出logcat
    android jni java类型与c语言类型互换
    约瑟夫环问题
    LeetCode面试题17.16 按摩师
    杂记
    书接上回,继续获取各链接内的小说内容
    正则表达式爬取小说各章节链接
    python爬虫学习心得:中国大学排名(附代码)
  • 原文地址:https://www.cnblogs.com/Eilen/p/12580142.html
Copyright © 2020-2023  润新知