使用tomcat-maven-plugin自动化部署应用

时间:2021-03-21 17:16:20

  目标:将应用自动打包并自动部署到远程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