概述
一直以来用Eclipse都是用本地tomcat、IDEA都是tomcat/jetty的maven插件的方式来跑Web工程。之前使用让IDEA用本地tomcat的方式来运行却没成功,一直困惑不已。然而今天公司需要这样做,问了下同事终于把这问题解决了。所以记录下!
部署步骤
安装本地Tomcat
Tomcat和JDK的安装可以查看这里win7下安装配置tomcat,java运行环境,具体的就不啰嗦了,这个步骤应该都操作过很多次了。但这是基础,jdk和tomcat没配好,接下来的所有工作都无法进行。
安装Tomcat and TomEE Integration
因为IDEA要依赖”Tomcat and TomEE Integration“这个插件来运行tomcat,所以我们的IDEA必须要进行安装。ULTIMATE版本的已经自带了,社区版的好像要自己装 。可以在工具栏的Run->Edit Configurations,在弹出来的界面中点击+,输入tomcat看是否有Tomcat Server,有的话就是已经安装了,没有的话就去Settings里的插件中心安装即可。
验证Project的Artifacts
打开Project的Module Setting(F4),看Artifacts里是不是有<project_name>:war和<project_name>:war exploded,如果你的是Web工程,一般都会有。如果没有就检查下是否是Web工程。
添加服务器配置
依次打开Run -> Edit Configurations -> + -> Tomcat Server -> Local,输入如下图中的配置。

配置热部署
在服务器的配置过程中,热部署是一个很常用的功能。如果没有配置热部署,那么你每修改一个java文件,甚至一个jsp文件,都必须手动restart server,那将是多么痛苦的一件事。
上面的图中,On ‘Update’ action是你点击Update按钮后的动作。而On frame deactivation是热部署的关键,为了实现热部署我们应该把它设置为Update classed and resources。 但是有时候我们发觉只有Do nothing、Update resources这两个选项,并没有Update classed and resources这个选项。其实这是因为我们的war包是选了 <project_name>:war这个,只要选回<project_name>:war exploded这个就可以了。
总结
其实本地tomcat的运行关键是依靠war包,而这个war包IDEA默认已经帮我们配置好了。所以把这个war包添加到tomcat的配置中就可以run on local了。