前言:在我们开发中,项目修改后,需要重新部署到服务器上,一般过程就是先停止tomcat服务器,然后将修改过的class文件重新覆盖到项目上,再启动tomcat。或者是重新打war包,删除tomcat上旧版本的项目和war,再将war放到tomcat里(也可直接放war上去覆盖旧war,启动tomcat的时候会自动解压war,这样会自动覆盖旧版本的项目),然后重新启动tomcat,这样非常繁琐,尤其是在有多个项目的时候。为了解决这种问题,我们可以用maven+tomcat来配置热部署(不用关闭tomcat就可以直接部署)。
一、Tomcat配置
1、修改Tomcat的conf/tomcat-users.xml配置文件。添加用户名、密码、权限。
<role rolename="manager-gui" />
<role rolename="manager-script" />
<user username="tomcat" password="tomcat" roles="manager-gui, manager-script"/>
既如下图所示:
2、重新启动Tomcat。
(1)访问tomcat主页,验证是否配置成功,点击其中一处的Manager App,输入用户密码登入。(此步可省略)
二、maven配置
1、配置pom.xml文件。
<build>
<plugins>
<!-- 配置Tomcat插件 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<configuration>
<!--
一般eclipse启动项目时候这里配置什么端口,访问项目的时候就是什么端口;用了热部署后,
是部署到目标tomcat里,因此这个port算是没用,访问时,是在tomcat的端口
-->
<port>8081</port>
<!-- 部署到ROOT下 -->
<path>/</path>
<!-- tomcat的地址和端口,manager/text是固定的 -->
<url>http://192.168.70.18:8080/manager/text</url>
<username>tomcat</username>
<password>tomcat</password>
</configuration>
</plugin>
</plugins>
</build>
2、使用maven命令进行部署。
(1)如图所示,命令为clean tomcat7:redeploy,如果是第一次部署,则为deploy,由于pom.xml配置的tomcat插件中的path为反斜杠/,这样就表示部署到tomcat的ROOT项目(ROOT项目肯定是部署过的),因此算是覆盖tomcat自带的ROOT项目,用redeploy重新部署。
(2)记得给Skip Tests 打上勾,跳过测试,或者不打勾,则命令为:
clean tomcat7:redeploy -DskipTests。
三、其他方法(不推荐)
1、在第一步的重新启动tomcat并登入后,找到下图所示,可以将war包直接部署到tomcat。
2、如果项目很多,这样也比较繁琐,因此推荐maven来部署