Maven热部署

Stella981
• 阅读 559

使用阿里云服务器的都有意识到,当我们向服务器(例如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目录,如下图;

Maven热部署

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

Maven热部署

<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),并测试访问自己服务器,例如下图:

Maven热部署

Maven热部署

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

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

Maven热部署

<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>

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

Maven热部署

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

首次发布:clean tomcat7:deploy

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

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

清除发布项目:clean tomcat7:undeploy

Maven热部署

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

Maven热部署

可能会遇到的坑如下:

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

Maven热部署

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

点赞
收藏
评论区
推荐文章
菜鸟阿都 菜鸟阿都
3年前
搭建个人内网穿透服务
内网穿透本地电脑上的服务无法通过互联网让其他人访问到,通过内网穿透技术可以为自己本地的服务提供互联网入口,无需将本地服务部署在服务器上,便可以让其他人可以访问前提准备本地web服务,访问8086端口阿里云服务器Ubuntu20.04疑问问:既然在使用frp内网穿透服务时,需要服务器,才能使本地服务互联网化,为什么不直接部署在服务器上?答:使用
Easter79 Easter79
3年前
springboot部署到tomcat
把springboot项目按照平常的web项目一样发布到tomcat容器下多点经验:1.保证运行环境的jdk和开发环境一致,不然class文件无法被编译2.保证tomcat和java的版本匹配,不然tomcat无法启动3.集群一般会进行ip和域名的映射,如果tomcat服务器不在集群内,需要在所在服务器进行
Easter79 Easter79
3年前
springboot打成的jar包如何在Linux上持久运行
一、首先说说在没有springboot的时候,项目是如何部署的?1.动态web项目动态web项目部署很方便,基本上上传文件到服务器的tomcat里面的webapps文件夹下即可完成部署。当然了,这种做法的弊端是,如果是通过winscp来传输对于网速方面要求严格,不然的话
SpringBoot内置tomcat启动过程及原理
SpringBoot是一个框架,一种全新的编程规范,他的产生简化了框架的使用,同时也提供了很多便捷的功能,比如内置tomcat就是其中一项,他让我们省去了搭建tomcat容器,生成war,部署,启动tomcat。因为内置了启动容器,应用程序可以直接通过Maven命令将项目编译成可执行的jar包,通过javajar命令直接启动,不需要再像以前一样,打包成War包,然后部署在Tomcat中。那么内置tomcat是如何实现的呢
Stella981 Stella981
3年前
SecureCRT 跳板机 内网直连
使用场景阿里云有10台服务器,只有一台开通了外网(同样也适用于在家办公时需要访问到公司内网):想通过阿里云内网IP以SSH方式访问另外9台服务器想通过阿里云内网IP以浏览器方式访问服务器中运行的web服务想通过阿里云内网IP以本机直连的方式链接服务器或某个
Easter79 Easter79
3年前
Spring的JNDI数据源连接池配置示例及Spring对JNDI实现分析
在使用Tomcat服务器SpringFramework进行JavaEE项目的开发部署的时候可以在Tomcat的配置文件中进行JDBC数据源的配置,具体步骤如下(这里省略了工程的建立步骤):1)添加如下代码到tomcat的conf目录下的server.xml中:Xml代码 收藏代码<Context
Easter79 Easter79
3年前
SpringBoot打成war包,部署到Tomcat服务器
前言 SpringBoot默认达成jar包,默认使用内置的Tomcat。但考虑到项目需要打成war包部署到外部的Tomcat服务器中。把SpringBoot项目按照平常的web项目一样发布到tomcat容器下。1、修改pom.xml文件将默认的jar(默认创建项目的时候没有packaging)方式改为war。
Stella981 Stella981
3年前
SpringBoot打成war包,部署到Tomcat服务器
前言 SpringBoot默认达成jar包,默认使用内置的Tomcat。但考虑到项目需要打成war包部署到外部的Tomcat服务器中。把SpringBoot项目按照平常的web项目一样发布到tomcat容器下。1、修改pom.xml文件将默认的jar(默认创建项目的时候没有packaging)方式改为war。
Stella981 Stella981
3年前
Linux下部署springboot项目的步骤及过程
最近在研究将springboot项目部署到Linux服务器上,由于springboot是内嵌了tomcat,所以可以直接将项目打包上传至服务器上。我是在idea上的项目,所以我就基于此说下过程。(一)打包你的项目1、在pom文件中添加springboot的maven插件 !(https://img2018.cnblogs.com/blog/1
Stella981 Stella981
3年前
Spring Boot项目打包并部署到云服务器
SpringBoot项目打包并部署到云服务器一、云服务器的环境OS:CentOS7Jdk1.8SpringBoot自动集成Tomcat,不需要单独配置二、本地SpringBoot项目打包我使用的工具是IntelliJ