• Maven热部署-不停止服务器情况下完成部署


    使用阿里云服务器的都有意识到,当我们向服务器(例如tomcat)发布项目的时候,都要事先停止服务器(./shutdown.sh),然后将自己的web项目打包成war,上传到服务器的webapps目录下,然后重新启动tomcat(./startup.sh),后面会发现,并不能立即访问到项目,需要等待大概6分钟后才能访问得到,通过(tail -f catalina.out)命令可以查看到tomcat服务器一直处于正在启动中,但并未启动成功。这等耗时------黄花菜都凉了;

    下面介绍一种通过maven工具实现不停用服务器部署项目:

    工具使用:eclipse,集成在eclipse中的maven插件,阿里云的tomcat服务器;

    目标:使用eclipse中的maven插件将web项目部署到远程的tomcat服务器下;

    一、首先你应该登录自己的远程服务器,可以使用putty等,然后定位到tomcat下的conf目录,如下图;

    通过vim命令(vim tomcat-users.xml)打开,并在下图中的位置添加如下代码:记得修改的username,password的值,后面有用到;最后保存(:wq)退出;

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

     因为修改tomcat中conf文件内容,所以此处需要重启tomcat(./shutdown.sh后./startup.sh),并测试访问自己服务器,例如下图:

    出现上面结果说明第一步配置成功;

    二、在eclipse中,对自己maven项目中的pom.xml进行配置,加上下面的代码:意思是添加tomcat7插件;

    <build>
    	<plugins>
    		<plugin>
    			<groupId>org.apache.tomcat.maven</groupId>
    			<artifactId>tomcat7-maven-plugin</artifactId>
    			<version>2.2</version>
    			<configuration>
    				<url>http://自己远程ip地址/manager/text</url>
    		            <path>/</path><!--这样配置会覆盖webapps下的root目录,导致的结果就是访问项目的时候只需要ip+端口号,不用项目名-->
                        <port>443</port><!--根据自己tomcat目录中的server.xml中的配置访问端口进行配置,默认是8080,自己修改过的话可能是80,如果做过安全证书,可能是443--> <server>tomcat</server> <username>admin</username><!--刚才第一步中自己设置的username,和password--> <password>123456</password> </configuration> </plugin> </plugins> </build>

    三、到目前为止就算配置完成了,接下就是将项目发布到远程服务器了,如下图

    接下来,需要填写命令,大致有以下几种状况:

    首次发布:clean tomcat7:deploy

    跳过测试发布:在后面加 -Dmaven.test.skip=true

    覆盖发布,再次发布:clean tomcat7:redeploy

    清除发布项目:clean tomcat7:undeploy

    最后,点击run,就开始检查和发布项目了,如果结果看到如下图,恭喜你,发布成功了,到自己远程服务器的webapps下看是否存在发布的项目吧

    可能会遇到的坑如下:

    1、这个是因为在webapps下已经存在了这个项目。无法执行覆盖更新命令,需要执行redeploy命令才可以覆盖更新。或者执行undeploy先卸载存在的项目,然后再执行deploy即可。

    这个是我遇到的问题,如果各位有遇到各种问题,欢迎发出来,一起处理一下!!!!

  • 相关阅读:
    【转载】Python正则表达式指南
    Redis4.0模块子系统实现简述
    Redis4.0 主从复制(PSYN2.0)
    13种细分类型的TCP重传小结(一张表总结4.4内核所有TCP重传场景)
    TCP/IP Illustrated Vol1 Second Edition即英文版第二版,TCP部分个人勘误
    TCP源码—epoll源码及测试
    TCP系列55—拥塞控制—18、其他拥塞控制算法及相关内容概述
    TCP系列54—拥塞控制—17、AQM及ECN
    TCP系列53—拥塞控制—16、Destination Metrics和Congestion Manager
    TCP系列52—拥塞控制—15、前向重传与RACK重传拥塞控制处理对比
  • 原文地址:https://www.cnblogs.com/zl-huang/p/10817118.html
Copyright © 2020-2023  润新知