我这个项目是用maven管理的一个多模块的项目,大概结构是
aaa
-Business
-Core
-Framework
-Web
aaa是pom项目,Web是war项目,其它的是jar
一开始我是在Web里面配置了tomcat的插件,但是发现每次修改都要手动重启一下tomcat,如果是改Business里面的代码,甚至要我mvn install一下就可以。
后面在网上查资料,发现几种方法可以热部署
一、把tomcat插件配置到pom项目里面去
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.0-beta-1</version>
<configuration>
<path>/dzdx</path>
<warSourceDirectory>${basedir}/src/main/webapp</warSourceDirectory>
<contextReloadable>true</contextReloadable>
<uriEncoding>GBK</uriEncoding>
</configuration>
</plugin>
这种方法我正在使用,是可行的,每次修改会自己更新,就类似于我们不用maven的时候,自己在eclipse里面配置 一个tomcat,每次一改代码就自动重新部署,虽然有些耗资源,但比起之前每次要手动重启要好很多,不过有一点要注意,一开始我用的是2.0的版本,加了contextReloadable后一直报错,启动不了,改成2.0-beta-1后就正常 了。
二、使用外部的tomcat
1)在tomcat中增加一个用户定义
<tomcat-users>
<user username="admin" password="password" roles="manager"/>
</tomcat-users>
2)在settings文件中增加
<servers>
<!-- 增加一个测试服务器 -->
<server>
<id>tomcat</id>
<username>admin</username>
<password>password</password>
</server>
</servers>
3) war项目中的pom配置
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.0-beta-1</version>
<configuration>
<url>http://localhost:8080/aaa</url>
<server>tomcat</server>
</configuration>
</plugin>
这种方法我没有试,我觉得还不如第一种方便
三、使用JRebel插件
详细请参考http://jlife.iteye.com/blog/479817 我试了一下没成功,有时间再研究一下。