目标:将应用自动打包并自动部署到远程tomcat容器。
1.在pom.xml中添加plugin
<plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <encoding>UTF-8</encoding> <!--实现热部署 --> <contextReloadable>true</contextReloadable> <!-- 部署应用的context path --> <path>/${project.artifactId}</path> <!-- Tomcat Manager 的URL,用于部署和取消部署的web应用程序,默认使用manager实例 --> <url>http://localhost:8080/manager/text</url> <update>true</update> <!-- Tomcat Manager的用户名和密码,需要在conf/context-user.xml中配置manager-script角色 --> <username>admin</username> <password>admin123</password> </configuration> </plugin>
2.说明
a.使用tomcat-maven-plugin也行,tomcat7-maven-plugin最近的版本是2.2,还是2013年更新的,目前还没看到tomcat8-maven-plugin,不过已经够用了。
b.在自动化部署之前,tomcat的webapps中必须有manager这个原生应用,用户管理容器中所有的应用(默认容器就已经有了),在/conf/tomcat-users.xml中必须配置几个角色,当然这些都是容器默认的,大家都知道,如果是生产环境记得注意安全问题。
<role rolename="manager-gui"/> <role rolename="manager-script"/> <role rolename="manager-jmx"/> <role rolename="manager-status"/> <user username="admin" password="admin123" roles="manager-gui,manager-script,manager-jmx,manager-status"/>
c.<url>这里既可以填写本地的也可以是远程的,<update>表示如果已经部署是否重新部署
d.最后就是启动了,打开maven命令界面,输入tomcat7:deploy 或redeploy
e.这里扩展几个tomcat命令
compile 默认,每个命令都会先执行这个,可以不用显示填写
deploy 部署应用到Tomcat
undeploy 取消部署
start 启动web
reload 重新加载web
stop 停止web