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)退出;

1<role rolename="manager-gui" /> 2<role rolename="manager-script" /> 3<role rolename="admin"/> 4<role rolename="manager"/> 5<user username="tomcat" password="tomcat" roles="manager-gui,manager-script,admin,manager" />

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

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

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

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

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

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

首次发布:clean tomcat7:deploy

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

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

清除发布项目:clean tomcat7:undeploy

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

可能会遇到的坑如下:

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

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

点赞
收藏

评论区

加载中...

相关推荐

搭建个人内网穿透服务

内网穿透本地电脑上的服务无法通过互联网让其他人访问到,通过内网穿透技术可以为自己本地的服务提供互联网入口,无需将本地服务部署在服务器上,便可以让其他人可以访问前提准备本地web服务,访问8086端口阿里云服务器Ubuntu20.04疑问问:既然在使用frp内网穿透服务时,需要服务器,才能使本地服务互联网化,为什么不直接部署在服务器上?答:使用

springboot部署到tomcat

把springboot项目按照平常的web项目一样发布到tomcat容器下多点经验:1.保证运行环境的jdk和开发环境一致,不然class文件无法被编译2.保证tomcat和java的版本匹配,不然tomcat无法启动3.集群一般会进行ip和域名的映射,如果tomcat服务器不在集群内,需要在所在服务器进行

springboot打成的jar包如何在Linux上持久运行

一、首先说说在没有springboot的时候,项目是如何部署的?1.动态web项目动态web项目部署很方便,基本上上传文件到服务器的tomcat里面的webapps文件夹下即可完成部署。当然了,这种做法的弊端是,如果是通过winscp来传输对于网速方面要求严格,不然的话

SpringBoot内置tomcat启动过程及原理

SpringBoot是一个框架,一种全新的编程规范,他的产生简化了框架的使用,同时也提供了很多便捷的功能,比如内置tomcat就是其中一项,他让我们省去了搭建tomcat容器,生成war,部署,启动tomcat。因为内置了启动容器,应用程序可以直接通过Maven命令将项目编译成可执行的jar包,通过javajar命令直接启动,不需要再像以前一样,打包成War包,然后部署在Tomcat中。那么内置tomcat是如何实现的呢

SecureCRT 跳板机 内网直连

使用场景阿里云有10台服务器,只有一台开通了外网(同样也适用于在家办公时需要访问到公司内网):想通过阿里云内网IP以SSH方式访问另外9台服务器想通过阿里云内网IP以浏览器方式访问服务器中运行的web服务想通过阿里云内网IP以本机直连的方式链接服务器或某个

Spring的JNDI数据源连接池配置示例及Spring对JNDI实现分析

在使用Tomcat服务器SpringFramework进行JavaEE项目的开发部署的时候可以在Tomcat的配置文件中进行JDBC数据源的配置,具体步骤如下(这里省略了工程的建立步骤):1)添加如下代码到tomcat的conf目录下的server.xml中:Xml代码 收藏代码<Context

Maven热部署 - HelloWorld