美文网首页
maven结合tomcat实现自动部署

maven结合tomcat实现自动部署

作者: 小李_a98e | 来源:发表于2018-09-27 17:05 被阅读0次

    maven结合tomcat实现自动部署

    • 编辑远程tomcat服务器下的conf/tomcat-users.xml,在末尾增加(其实只要拉到文件末尾,去掉注释改一下就可以了)

      <role rolename="manager-gui"/>
      <role rolename="manager-script"/>
      <user username="admin" password="password" roles="manager-script"/>
      <user username="root" password="password" roles="manager-gui"/>
      

      将上面的password改为自己的密码,注意对于tomcat9来说,不能同时赋予用户manager-script和manager-gui角色。

      保存tomcat-users.xml。

    • 在tomcat服务器的conf/Catalina/localhost/目录下创建一个manager.xml文件,写入如下值:

      <?xml version="1.0" encoding="UTF-8"?>
      <Context privileged="true" antiResourceLocking="false"
               docBase="${catalina.home}/webapps/manager">
                   <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
      </Context>
      
    • 然后在浏览器中输入http://serverip:port/manager/html,此时会弹出要求输入用户名和密码对话框,输入manager-gui对应的用户和密码登录管理控制台(其中serverip为服务器ip,如果服务器在本地就是localhost或者127.0.0.1,端口为tomcat端口,默认8080)。以此确认manager是否配置正确。 输入 roles 为 manager-gui 的用户名密码

    • 在pom.xml文件中,在plugins节点下添加如下plugin节点

      <plugin>
      
          <groupId>org.apache.tomcat.maven</groupId>
          <artifactId>tomcat7-maven-plugin</artifactId>
          <version>2.2</version>
      
          <configuration>
              <url>http://serverip:port/manager/text</url>
              <username>admin</username>
              <password>password</password>
              <update>true</update>
              <path>/webapp</path> <!-- 项目部署的名字 -->
          </configuration>
      
      </plugin>
      
      • 然后进行部署,如果是第一次部署,运行mvn tomcat7:deploy进行自动部署(对于tomcat8,9,也是使用tomcat7命令),如果是更新了代码后重新部署更新,运行mvn tomcat7:redeploy,如果第一次部署使用mvn tomcat7:redeploy,则只会执行上传war文件,服务器不会自动解压部署。如果路径在tomcat服务器中已存在并且使用mvn tomcat7:deploy命令的话,上面的配置中一定要配置<update>true</update>,不然会报错。

      • 解决部署时内存溢出问题

        <dependency>
            <groupId>se.jiderhamn.classloader-leak-prevention</groupId>
            <artifactId>classloader-leak-prevention-servlet</artifactId>
            <version>2.1.0</version>
        </dependency>
        
    • web.xml 添加过滤器

      <listener>
          <listener-class>se.jiderhamn.classloader.leak.prevention.ClassLoaderLeakPreventorListener</listener-class>
      </listener>
      

    相关文章

      网友评论

          本文标题:maven结合tomcat实现自动部署

          本文链接:https://www.haomeiwen.com/subject/vnzeoftx.html