標簽:IntelliJ IDEA、Jrebel、spring boot、springboot、
副標簽:eclipse、Tomcat
本文主要針對IntelliJ IDEA中的Jrebel插件,Tomcat中的安裝可以借鑒一部分原理
1.安裝插件並注冊激活
插件安裝參考:
http://blog.csdn.net/u012283609/article/details/70212318
插件注冊激活參考:
http://m.blog.csdn.net/u012283609/article/details/70213307
Chrome瀏覽器 翻(fan)牆(qiang)插件安裝參考:
http://chromecj.com/utilities/2014-09/181.html
Chrome瀏覽器 翻(fan)牆(qiang)插件(Tunnello)下載地址參考:
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等文件編譯后的輸出目錄),當發現其中的文件發生變化時,就重新加載變化的文件。
當然,這個是大致的原理,其內部的具體實現,肯定是相當復雜了,這里就不深究了。