Maven实现tomcat热部署
兼容 tomcat7和tomcat8
测试了一上午maven项目热部署到tomcat,在网上查找了不少资料,终于测试成功,写写自己的测试过程。
一、开放tomcat管理权限
1.1 必须有manager项目
tomcat webapps下面必须manager项目,用于管理tomcat权限操作。如果webapps下面没有该项目,
则不能进行热部署。
1.2 配置tomcat用户权限
tomcat conf 目录下的tomcat-users-xml ,配置用户权限,通过这个权限进行热部署操作。
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="tomcat" password="tomcat" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-script,admin-gui"/>
测试是否成功的方法是,登陆 http://xxxxxxx/manager,登陆成功则权限配置正确。
二、配置maven-tomcat 热部署插件
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<url>http://xxxxx:8080/manager/text</url>
<username>tomcat</username>
<password>tomcat</password>
<path>/${warName}</path>
</configuration>
</plugin>
三、可能存在的问题
配置热部署插件的url必须正确 不能是http://xxxxx:8080/manager 或者
http://xxxxx:8080/manager/html
使用热部署时,war的保存路径必须是默认路径,否则会提示找不到war包
热部署时,必须首先启动tomcat,才能进行部署maven项目
热部署只是第一次部署时有效,不是项目的实时部署,需要重新部署时,需要先将服务器中的项目删除,
再进行热部署。