|
| 1 | +# IntelliJ IDEA 的 Java 热部署插件 JRebel 安装及使用 |
| 2 | + |
| 3 | +## JRebel 介绍 |
| 4 | + |
| 5 | +在 Java Web 开发中, 一般更新了 Java 文件后要手动重启 Tomcat 服务器, 才能生效, 浪费不少生命啊, 自从有了 JRebel 这神器的出现, 不论是更新 class 类还是更新 Spring 配置文件都能做到立马生效,大大提高开发效率。 |
| 6 | + |
| 7 | +## JRebel 安装 |
| 8 | + |
| 9 | +JRebel 的安装方法有两种, 一种是直接在 Tomcat 启动参数上面加上 JRebel 的参数, 另外一种是以插件的形式装到 IntelliJ IDEA 上, 比较推荐后者。 |
| 10 | + |
| 11 | +首先先介绍第一种安装方法, 先在硬盘某个位置把 JRebel 解压出来 |
| 12 | + |
| 13 | +然后配置 IntelliJ IDEA 的 Tomcat |
| 14 | + |
| 15 | +![enter description here][1] |
| 16 | + |
| 17 | +点 `+` 号选择 `Tomcat Server` -> `Local` |
| 18 | + |
| 19 | +![enter description here][2] |
| 20 | + |
| 21 | +默认显示如图 |
| 22 | + |
| 23 | +![enter description here][3] |
| 24 | + |
| 25 | +几个关键的地方需要注意的, 就是首先要选择 `Deployment` 这个选项卡 |
| 26 | + |
| 27 | +![enter description here][4] |
| 28 | + |
| 29 | +选择自己的项目, 建议选择带 `exploded`, 这个相当于改 Tomcat 的 CATALINA_HOME, 效率比较高 |
| 30 | + |
| 31 | +![enter description here][5] |
| 32 | + |
| 33 | +选择好后, 删掉默认的Make, 提高效率 |
| 34 | + |
| 35 | +![enter description here][6] |
| 36 | + |
| 37 | +接下来返回 `Server` 选项卡, 会发现多了一项 `On frame deactivation`, 如果你刚才没有配置 `Deployment` 选项卡的话的这项是不会出现的 |
| 38 | + |
| 39 | +按如图所示的来配置, 特别需要注意的是 `On 'Update' action` 和`On frame deactivation` 这两项目一定要选择 `Update classes and resources`, 否则类修改热部署不生效, 或者第三方模版框架例如 Freemarker 热部署不生效 |
| 40 | + |
| 41 | +![enter description here][7] |
| 42 | + |
| 43 | +接下来就是很关键的需要引入 JRebel 的地方了, 在 VM options 的最右边有个箭头, 点进去 |
| 44 | + |
| 45 | +![enter description here][8] |
| 46 | + |
| 47 | +Windows 输入: |
| 48 | + |
| 49 | + -noverify |
| 50 | + -agentpath:D:/dev_env/jrebel/jrebel_running/lib/jrebel64.dll |
| 51 | + |
| 52 | +![enter description here][9] |
| 53 | + |
| 54 | +Linux 用这个: |
| 55 | + |
| 56 | + -agentpath:/dev_env/jrebel/jrebel_running/lib/libjrebel64.so |
| 57 | + |
| 58 | +![enter description here][10] |
| 59 | + |
| 60 | +Mac OS 用这个: |
| 61 | + |
| 62 | + -agentpath:/dev_env/jrebel/jrebel_running/lib/libjrebel64.dylib |
| 63 | + |
| 64 | +![enter description here][11] |
| 65 | + |
| 66 | +配置完成, 直接启动 Tomcat 即可, 不过此方法麻烦, 每次新建项目都要从新配置 |
| 67 | + |
| 68 | +接下来介绍使用 IntelliJ IDEA 插件的方式启动 JRebel |
| 69 | + |
| 70 | +首先是安装 JRebel 的插件, 安装方法和其他插件安装方法一样, 不过这里不采用在线安装, 直接选择本地安装, 直接选择插件安装即可 |
| 71 | + |
| 72 | +![enter description here][12] |
| 73 | + |
| 74 | +安装好后在设置里面会多出一项JRebel的配置 |
| 75 | + |
| 76 | +查看一下插件是否有效 |
| 77 | + |
| 78 | +![enter description here][13] |
| 79 | + |
| 80 | +绿色的 `VALID` 表示是有效的 |
| 81 | + |
| 82 | +在原来运行项目的按钮边上会多出两个绿色的按钮, 如图, 前面那个是 `Run`, 后面那个是 `Debug` |
| 83 | + |
| 84 | +![enter description here][14] |
| 85 | + |
| 86 | +配置 Tomcat 的方法和直接上面说的直接调用配置方法一样, 同样需要注意的是 `On 'Update' action` 和 `On frame deactivation` 这两项目一定要选择 `Update classes and resources`, 唯一不同的是 VM options 这项不需要填, 放空就好 |
| 87 | +接下来直接启动项目, 一般选择后面那个 Debug 按钮 |
| 88 | + |
| 89 | +![enter description here][15] |
| 90 | + |
| 91 | +看到 Log 有 JRebel 输出的版本信息, 没有报错就是表示成功执行了, 随便改一个类试试吧 |
| 92 | + |
| 93 | +JRebel有免费激活版的,可以执行搜索到,支持正版 |
| 94 | + |
| 95 | + [1]: ./images/xxviii-jrebel-setup-1.jpg "xxviii-jrebel-setup-1.jpg" |
| 96 | + [2]: ./images/xxviii-jrebel-setup-2.jpg "xxviii-jrebel-setup-2.jpg" |
| 97 | + [3]: ./images/xxviii-jrebel-setup-3.jpg "xxviii-jrebel-setup-3.jpg" |
| 98 | + [4]: ./images/xxviii-jrebel-setup-4.jpg "xxviii-jrebel-setup-4.jpg" |
| 99 | + [5]: ./images/xxviii-jrebel-setup-5.jpg "xxviii-jrebel-setup-5.jpg" |
| 100 | + [6]: ./images/xxviii-jrebel-setup-6.jpg "xxviii-jrebel-setup-6.jpg" |
| 101 | + [7]: ./images/xxviii-jrebel-setup-7.jpg "xxviii-jrebel-setup-7.jpg" |
| 102 | + [8]: ./images/xxviii-jrebel-setup-8.jpg "xxviii-jrebel-setup-8.jpg" |
| 103 | + [9]: ./images/xxviii-jrebel-setup-9.jpg "xxviii-jrebel-setup-9.jpg" |
| 104 | + [10]: ./images/xxviii-jrebel-setup-10.jpg "xxviii-jrebel-setup-10.jpg" |
| 105 | + [11]: ./images/xxviii-jrebel-setup-11.jpg "xxviii-jrebel-setup-11.jpg" |
| 106 | + [12]: ./images/xxviii-jrebel-setup-12.jpg "xxviii-jrebel-setup-12.jpg" |
| 107 | + [13]: ./images/xxviii-jrebel-setup-15.jpg "xxviii-jrebel-setup-15.jpg" |
| 108 | + [14]: ./images/xxviii-jrebel-setup-13.jpg "xxviii-jrebel-setup-13.jpg" |
| 109 | + [15]: ./images/xxviii-jrebel-setup-14.jpg "xxviii-jrebel-setup-14.jpg" |
| 110 | + [16]: http://pan.baidu.com/s/1gd76hXL |
| 111 | + [17]: http://pan.baidu.com/s/1qW5RPYc |
0 commit comments