Intellij IDEA+Tomcat+JRebel熱部署
一、安裝JRebel外掛
1. 線上安裝
開啟設定 File ->setting或者直接點設定的圖示進入
線上下載並安裝
2. 破解外掛
下載破解補丁具體要找到對應版本的,這邊用的是6.2的破解版本(但實際安裝的是6.2.2,照樣可以使用)將破解版裡面的jrebel.lic拷貝到C:\當前使用者下\.jrebel 目錄下;jrebel.jar替換C:\當前使用者\.IntelliJIdea13\config\plugins\jr-ide-idea\lib目錄下的jrebel.jar檔案
開啟idea後,看到jr圖示就代表安裝外掛成功,還有在設定裡面會多出Jrebel,如下:
License為valid就代表破解成功了。
二、部署專案工程的兩種方式
方式一、結合Artifacts部署專案
1. 開啟專案配置File ->project structure
根據專案Modules配置Artificials
2. 配置tomcat
3.設定Jrebel
設定redeploy時間,這樣修改java檔案後,jre會自動監測到。(不過這樣設定是否會很佔記憶體?)後臺會有提示資訊,如:2014-05-29 19:13:12 JRebel: Reloading class 'test'.
經過這三步設定,一般就可以了。這樣貌似連rebel.xml都不用生成,就可以實現熱部署了。記得以jr方式啟動tomcat(就是點那個jr圖示了),而不是直接啟動tomcat。
方式二、External Source載入專案工程
1. 修改class輸出目錄
class檔案輸出到工程本身的WEB-INF目錄下
2. tomcat載入專案
選擇到web工程的根目錄即WebRoot,這個目錄直接包含工程本身的jsp、html等檔案還有我們配置的class輸出內容。這樣jsp有修改就可以直接顯示,而class就由jre監測。
注:用這種方式載入專案的,在server裡面就沒有Update classes and resource了
3.生產rebel.xml
右鍵專案,可以看到Jrebel選項,選擇rebel.xml即可自動生成,xml主要內容是監測class目錄和web工程目錄
4. 設定idea自動編譯
這4個步驟設定好,用jr啟動tomcat就可以了。
總結:兩種方式都是以tomcat目錄下localhost的配置檔案進行載入專案,配置檔案裡指定載入的路徑。Artifacts方式的,class不僅要生成output,同時在Modules那邊也會指定class的生成目錄,感覺多生成了一份,沒什麼必要,不知道這樣的好處在哪裡,暫時不懂。而External Source載入專案工程的方式,直接在Modules指定class生成目錄到本工程下,而jsp本身就是工程下面的,所以在tomcat的配置檔案那邊直接指定到工程目錄下即可。所以個人暫時採用方式二進行處理,用一段時間試試。
遇到的問題:採用方式二部署專案的時候,tomcat啟動,找不到工程的jar包,而工程明明有引入對應的jar包了。
問題原因:jar包目錄lib跟web根目錄同一級別,tomcat啟動的時候無法載入到這個lib。雖然專案編譯能通過,但釋出的時候就會有問題。
問題解決:將lib目錄放於WEB-INF目錄下即可