jrebel+idea 進行熱部署配置
1、安裝和激活jrebel這里不在敘說
2、部署項目工程的兩種方式
第一:打開項目配置project structure 配置Artificials
第二:tomcat加載項目 然后填寫應用名稱,轉到Server頁簽進行配置
配置Server相關參數
第三步:設置 Jrebel參數
設置redeploy時間,這樣修改java文件后,jre會自動監測到。(不過這樣設置是否會很占內存?)后台會有提示信息,如:2014-05-29 19:13:12 JRebel: Reloading class 'MyServlet'.
經過這三步設置,一般就可以了。這樣貌似連rebel.xml都不用生成,就可以實現熱部署了。 記得以jrebel 方式啟動tomcat(就是點那個jr圖標了),而不是直接啟動tomcat。
3、方式二、External Source加載項目工程
第一:1. 修改class輸出目錄
第二、tomcat加載項目
注意:選擇到web工程的根目錄即WebRoot,這個目錄直接包含工程本身的jsp、html等文件還有我們配置的class輸出內容。這樣jsp有修改就可以直接顯示,而class就由jre監測。
注:用這種方式加載項目的,在server里面就沒有Update classes and resource了
第三:.生產rebel.xml
右鍵項目,可以看到Jrebel選項,選擇rebel.xml即可自動生成,xml主要內容是監測class目錄和web工程目錄
第四:. 設置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目錄下即可