使用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>