标签:IntelliJ IDEA、Jrebel、spring boot、springboot、eclipse、Tomcat
1.安装插件并激活
插件安装参考:
插件激活参考:
ChromeFQ插件安装参考:
Tunnello免费的浏览器FQ插件下载地址参考:
https://www.iteblog.com/archives/1715.html/comment-page-4#download
2.File—>other settings—>default settings—>Build,Execution,Deployment—>compiler
勾选Build project automatically
注意,目前我使用的IDEA是Mac intelliJ IDEA 2017.2.6版本
所以在Build project automatically后会标注有only works while not running / debugging,其他版本未尝试,
这句话说明在项目运行的过程中,项目仍然不会自动编译,所以需要第三步
3.点击idea窗口栏上(注意是点在idea的窗口栏上,不是窗口里面的文件上,就是有关闭,最小化按钮的那个栏框上),按下Ctrl+shift+alt+/(Mac下为:command+shift+alt+/),会弹出一个小窗口,上下选中registry,enter进入,找到compiler.automake.allow.when.app.running,在该项后边勾选上,点close。
4.点击idea窗口左下角JRebel打开JRrebel panel,将需要Jrebel热部署的项目勾选上,这时候会在对应项目中自动添加一个rebel.xml的文件,
<classpath>
<dir name=“/…/…/…/…”></dir>
</classpath>
其中的dir就是JRebel监听改动的目录,当这个目录中的class文件(包括但不限于class文件)发生变动时,JRebel就会重新加载变动的class文件。
如果发现dir name指定的文件夹不是自己项目的class文件的输出目录,可以手动设置,指向正确的目录。(本人未亲自尝试)
5.启动项目,run with JRebel ……,启动开始时如果出现:
2017-12-05 13:41:47 JRebel: Directory ‘/…/…/…/…' will be monitored for changes.
表示jrebel已经可以监听class文件的变动了,JRebel插件已经可以正常运行了。
good luck,successful!
总结:Jrebel所做的主要事情就是,监听项目文件编译输出目录(classes,resources等文件编译后的输出目录),当发现其中的文件发生变化时,就重新加载变化的文件。
当然,这个是大致的原理,其内部的具体实现,肯定是相当复杂了,这里就不深究了。