使用IDEA+tomcat對於老系統項目的維護特別蛋疼,每次更改或者修改jsp頁面等都會導致項目運行時候不生效,都得重新啓動應用纔行,這樣一來浪費了很多時間在等待上面,得不償失。
設置IDEA對tomcat設置:
設置這兩個參數項目:
On 'Update' action:Update classes and resources
On frame deactivation: Update classes and resources
每次項目啓動後,修改了java類或者靜態頁面,都重新在點擊一下下面按鈕並可:
這樣會將你修改的東西動態的update在application中。
以爲這樣就萬事大吉了嗎?這個只是對靜態或者沒改變class結構的時候有效,如果遇到下面的情況,例如:
@RequestMapping(value = "/share/s.htm")
public void share(String shortCode) {
//根據短碼查詢分享數據信息
List<ResShare> resShareList = resShareService.queryByShortCode(shortCode);
if(resShareList != null && resShareList.size() > 0) {
}
//return "forward:/share/viewShare.do";
}
你將這個方法的void改爲有返回值的情況,在重新加載的時候就會出現項目報錯,此時你還得重新啓動一下項目!有什麼方法可以避免這種情況呢?
使用JREBEL進行熱部署
1.安裝
JRebel6.4.3安裝破解教程下載資料:https://download.csdn.net/download/fengchao2016/11155113
說明:通過Idea下載JRebel插件需要付費使用,雖然提供了14天免費使用,但是畢竟會有過期的時候!沒有永久免費使用的爽啊。在互聯網的幫助下,終於找到一種JRebel的破解方式,但是隻支持JRebel6.4.3以及以下的版本破解。
2.設置
選擇settings -> JRebel -> advanced 選擇Jrebel 6 Agent,然後重啓idea。設置截圖所示:
idea的 tomcat設置還是和上面的一樣。啓動時候用JRebel啓動就可以。
3.擴展(可選,配置與否不影響)
當一個項目使用maven多模塊開發時通過上面的配置, 只能自動加載webapp所在的模塊, 若想改動其他模塊的代碼也要自動加載, 需在項目的根(父)pom.xml文件中加入下面的配置:
<plugin>
<groupId>org.zeroturnaround</groupId>
<artifactId>jrebel-maven-plugin</artifactId>
<version>1.1.5</version>
<configuration>
<addResourcesDirToRebelXml>true</addResourcesDirToRebelXml>
<alwaysGenerate>true</alwaysGenerate>
<showGenerated>true</showGenerated>
</configuration>
<executions>
<execution>
<id>generate-rebel-xml</id>
<phase>process-resources</phase>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
</plugin>