记Tomcat删除war包问题

2023-10-30

由于不清楚tomcat部署原理,误认为tomcat部署完成之后,可以把war删除,然后以后每次部署,只需要增量部署就行了,然后还怕由于war包的存在,增量部署的内容会被覆盖掉,不清楚war包什么时候会自动重新部署。

于是,,rm -rf mm.war---尴尬了。。删除war包之后,发现解压的项目目录都顺带不见了。。。

于是赶紧查询资料:

纠正自己的错误思想:

1、tomcat全量部署完成之后,确实可以删除war包。但是要注意,千万不要再项目运行过程中删除war包。正确的姿势是:先停止服务,然后删除war包,重新启动。

原因:tomcat在项目运行过程中,会检测war包的情况,如果发现war包更改了,那么就会同步把war包的变化应用到项目目录中,你删了war包,自然项目解压目录也就随之消除。。。

因为tomcat在运行期, 会实时监控webapps目录下的war文件,如果有新增的war,就去解压它; 有删除war,就连同项目一起删除 .

 

2、如果项目解压目录和war包同时存在,增量更改目录里的文件,会被war包覆盖吗?

不会,除非你更新了war包。tomcat在项目运行的过程中,会执行解压目录下的项目。

  • 当你重新部署的时候,如果有与war文件相同的文件夹,就不会重新部署。

当tomcat启动时候,会去查看webapps目录下的所有war包,同时查看是否有该war包对应的,已解压的同名文件夹,
如果已经存在,就不会再解压,也不会覆盖该工程下已经被修改过的文件.
只有当你删除war包对应的同名文件夹(即 你的工程 )后,启动tomcat时才会再进行解压war文件动作

 

tomcat启动的时候,才会进行war的重新解压。但是前提是,webapps下没有war的同名文件夹,如果已经存在,那么及时重启tomcat也不会重新解压。

将war包拷贝到tomcat  webapps目录下时,如果不存在同名工程,则启动tomcat时会解压war包,从而生成一同名工程。

然而,如果webapps下已经存在与war包同名的工程目录,则即使重启tomcat,也不会重新解压此war包,也就是说,运行的仍是之前同名工程目录下的代码,而不是war包中的新代码。

   

基于这种现状,采用了以下方式:

copy target\*.war D:\java_tools\tomcat6\webapps\

cd D:\java_tools\tomcat6\webapps

for %%a in (*.war) do rd /q /s "%%~na"

call D:\java_tools\tomcat6\bin\startup.bat

   

其主要思路是:

将war包拷贝到webapps目录下,遍历所有war包,删除掉webapps目录下与war包同名的工程目录,然后重启tomcat,则会将war包重新解压,这样每次tomcat上部署的都会是最新的代码。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

记Tomcat删除war包问题 的相关文章

随机推荐

  • 一个成熟期货交易系统需要解决哪些问题?

    一个成熟期货交易系统需要解决哪些问题 交易系统绝对不仅仅是时机选择 资金管理 情绪控制这么简单 他是一个系统性的思维 交易系统是一组包含了入场信号 风险控制 资金管理 加减仓机制 可以没有 离场方式等等基本元素的的规则组合 成熟的交易系统是
  • AngularJS概述&指令

    AngularJS 指令 AngularJS 应用组成如下 View 视图 即 HTML Model 模型 当前视图中可用的数据 Controller 控制器 即 JavaScript 函数 可以添加或修改属性 指令 描述 ng app 定
  • android studio cmake 编译找不到ninja解决方案

    https forum cocos com t android studio cmake ninja 77324
  • 偶数斐波那契数列

    斐波那契数列中的每一项都是前两项的和 由和开始生成的斐波那契数列的前项为 1 2 3 5 8 13 21 34 55 89 考虑该斐波那契数列中不超过四百万的项 求其中为偶数的项之和 解题思路 这里我们要是用for循环肯定会超过范围 所以我
  • 警告:隐式声明函数‘xxx’ [-Wimplicit-function-declaration]

    在c编译中 出现此类警告的原因 没有声明原始函数 一般的解决方式 在程序前面增加函数头说明即可 否则是用默认说明 隐式说明 来解释函数调用规则 比如返回值默认是int就是在你不说明时起作用的 以下是摘录的比较好的一篇说明 点击打开链接 1
  • HTML空格占位符 空行,整理,待以后查看

    32 普通的英文半角空格 160 nbsp xA0 no break space 普通的英文半角空格但不换行 12288 中文全角空格 一个中文宽度 8194 ensp en空格 半个中文宽度 8195 emsp em空格 一个中文宽度 8
  • java跨库分页_微服务架构跨库分页解决的四种方案

    引言 微服务架构是一项在云中部署应用和服务的新技术 大部分围绕微服务的争论都集中在容器或其他技术是否能很好的实施微服务 而红帽说API应该是重点 微服务可以在 自己的程序 中运行 并通过 轻量级设备与HTTP型API进行沟通 关键在于该服务
  • JS代码延时执行

    延时执行代码使用window对象的setTimeout函数 第一个参数为要延时执行的代码 第二个参数为延时时间 毫秒单位 例子
  • css置灰属性 模糊属性 滤镜遮罩属性 (一行代码实现)

    网站一行代码置灰 原因都知道 是为了纪念一位伟人 这种把整个页面都变成灰色 下面是css便捷属性 置灰实现方式 filter grayscale 1 效果 模糊度实现方式 filter blur 5px 效果 最后一种是 backdrop
  • 程序员必会的git语法及gitlab、github应用

    文章目录 3分钟掌握git语法及gitlab github应用 关于作者 作者介绍 前言 一 控制版本 1 1 什么是版本 1 2 什么是控制版本 1 3 版本管理工具 二 git 版本管理 2 1 git 介绍 2 2 git 安装 2
  • VSCode下使用markdown导出pdf,导出图片或插入LaTeX公式等使用记录(1)

    记录一下自己觉得比较好用的markdown插件 以及在VSCode下编辑并将markdown的渲染结果导出pdf为或png等格式 1 Markdown All in One VSCode下的markdown插件 目前这个用起来比较丝滑 而且
  • 微服务架构下的移动架构实践

    转载本文需注明出处 EAII企业架构创新研究院 违者必究 如需加入微信群参与微课堂 架构设计与讨论直播请直接回复此公众号 加群 姓名 公司 职位 微信号 大家好 我是普元信息移动产品的负责人 郝振明 很高兴又与大家见面了 今天和大家分享的主
  • 怎么使用51单片机实现人脸识别?

    使用 51 单片机实现人脸识别可以通过以下步骤来实现 准备必要的硬件设备 包括 51 单片机 摄像头和相应的连接线 安装并配置相应的开发环境 如 Keil IAR 等 准备人脸识别所需的人脸数据库 这可以通过手动收集人脸图像并进行标记来实现
  • linux内核态和用户态(通俗易懂)

    一 内核态 用户态概念 内核态 也叫内核空间 是内核进程 线程所在的区域 主要负责运行系统 硬件交互 用户态 也叫用户空间 是用户进程 线程所在的区域 主要用于执行用户程序 二 内核态和用户态的区别 内核态 运行的代码不受任何限制 CPU可
  • 在为水质担忧吗?——水质检测大屏展示系统启动(inscode直观运行)

    前言 作者主页 雪碧有白泡泡 个人网站 雪碧的个人网站 推荐专栏 java一站式服务 React从入门到精通 前端炫酷代码分享 从0到英雄 vue成神之路 uniapp 从构建到提升 从0到英雄 vue成神之路 解决算法 一个专栏就够了 架
  • 动态规划法求解编辑距离问题

    问题描述 设A和B是两个字符串 现在要用最少的字符操作次数 将字符串A转换为字符串B 这里所说的字符操作共有3种 1 删除一个字符 2 插入一个字符 3 将一个字符替换另一个字符 例如 A sfdqxbw B gfdgw 结果为4 问题求解
  • STM32超声波模块测距

    特别注意 单独t link只能提供3 3v电压 模块接5v电压只能收到3 3V 供电的时候请接上micro口 模块介绍 HC SR04超声波模块可提供2cm 400cm的距离感测功能 测量精度可以达到3mm 通过声音340m s t 2可以
  • TCP3次握手连接协议和4次握手断开连接协议

    TCP IP 状态机 如下图所示 在TCP IP协议中 TCP协议提供可靠的连接服务 采用三次握手建立一个连接 如图1所示 SYN包表示标志位syn 1 ACK包表示标志位ack 1 SYN ACK包表示标志位syn 1 ack 1 1 第
  • 关于stm32f429的MDA2D的M2M模式

    LTDC的使用问题 可参考官方例程的配置 需要注意的是 它只是一个LCD控制器 需要定义缓存的地址 可以设置在flash里 但是不便于操作 一般还是建议设置外部SDRAM里 LTDC中DMA2D的使用问题 429中LTDC的2D加速功能还比
  • 记Tomcat删除war包问题

    由于不清楚tomcat部署原理 误认为tomcat部署完成之后 可以把war删除 然后以后每次部署 只需要增量部署就行了 然后还怕由于war包的存在 增量部署的内容会被覆盖掉 不清楚war包什么时候会自动重新部署 于是 rm rf mm w