一个命令更新线上项目:maven配置tomcat热部署

一个命令更新线上项目:maven配置tomcat热部署

经验文章nimo972025-02-14 22:59:1613A+A-

背景

当我们开发完项目,需要部署到tomcat服务器,你是否重复以下步骤,连接远程服务器、关闭tomcat、删除war包、上传war包、启动服务器,步骤是如此繁琐,那么有没有一种方式直接一键部署呢?答案是肯定的,就是我今天要说的tomcat热部署。

热部署就是在不停止tomcat的情况下,将新的war包放上去,达到服务不中断,用户无察觉的目的。

在开始介绍前,先说说他的原理

Tomcat热部署原理

启动tomcat时,tomcat也会同时启动一个后台线程BackgroundProcessor,在线程内部他主要做这几件事:

1各容器组件周期性的检查类文件变化,当检查到文件变化时,tomcat会使用WebAppClassLoader 类加载器重新加载文件(热加载),过程中不会清空session。

2触发HostConfig监听器,定期检查web应用,应用删除,销毁content容器,有新的应用就部署(热部署),过程中会清空session。

上边两件事都有开关控制:

热加载: 默认是关闭的

热部署: 默认是开启的

实际操作

1开启热部署配置

我使用的是tomcat8,tomcat7操作略有不同。

找到conf文件夹,修改tomcat-users.xml

节点下面增加如下配置,密码和用户名都可以自己设置:




开启远程ip访问

找到
/usr/local/tomcat/webapps/manager/META-INF/context.xml

注释掉这个Value节点。(关闭远程访问Manager访问权限ip限制)。

如果能看到下边网页就代表配置成功了

2配置pom文件



org.apache.tomcat.maven
tomcat7-maven-plugin
2.2

/
8080
UTF-8

http://ip地址:8080/manager/text
 lytest
lytest


注意:如果配置/,那么项目会直接发布到ROOT中,直接访问即可

如果配置成/chinatsiPortalWeb,那么会在webapps下创建chinatsiPortalWeb.war 包,访问时路径上要加上chinatsiPortalWeb

3部署(以后更新项目只需这一步即可)

添加命令

执行,看到如下即代表发布成功

服务器上已经出现了相应war包

项目正常访问

您的赞和关注是对我创作的最大肯定谢谢大家

点击这里复制本文地址 以上内容由nimo97整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

尼墨宝库 © All Rights Reserved.  蜀ICP备2024111239号-7