war和war exploded的区别

      使用IDEA配置Tomcat服务的时候,在 Select Artifacts to Deploy 选项中相同项目名有war和 war exploded 两种模式,之前只是傻乎乎的随机选一个,知其然而不知其所以然。今天探究一下二者的区别。
 
 
  • war模式:将web工程以war包的形式上传到服务器;
  • war exploed模式:将web工程以当前文件夹的位置关系上传到服务器。
       通俗地说,war模式先打成war包,然后再发布到Tomcat的ROOT下。所以选择这个模式后,你再看下你的tomcat的root文件夹下,是刚打成的项目。war exploded模式只编译生成target,然后把当前的target文件夹的位置关系上传到服务器,没有打包到tomcat的ROOT下。因此这种方式支持热部署,一般在开发的时候也是用这种方式,关于热部署,下面详细介绍一下。
 

热部署

 
      在平时开发的时候,每次修改代码都需要重启一次Tomcat的确不方便,如果使用热部署,可以大大减轻工作量,此时应该对Tomcat进行相应的设置,这样的话修改的jsp界面什么的东西才可以及时的显示出来。需要在Tomcat做如下设置:
 
  • on ‘update‘ action:当用户主动执行更新的时候更新    快捷键:Ctrl + F9
  • on frame deactication:在编辑窗口失去焦点的时候更新
      你可以根据自己的需求进行设置,我这里两个都有设置。
      然后启动IDEA的自动编译功能。Intellij IDEA默认关闭了自动编译,在Setting中找到 Build,Execution,Deployment => Compiler,勾选Build Project automatically。
 
      on frame deactivation热部署缺点:基于JVM提供的热加载仅支持方法块内代码修改,只有在debug模式下,并且idea失去焦点时才会触发热加载,相对加载速度缓慢。
      如果你的工程中没有选项 Update classes and resources ,那么,只能更新classes文件中的变动,并不能更新静态文件中的变动。
        出现这种选项情况的原因是在配置Deployment时选择了包含war的包,如全部都是war exploded则不会出现这种情况。召唤Update classes and resources的方式:先remove当前工程所有的Artifacts,再次添加,添加的时候在Artifact清单中仅仅选择工程名称后面有 exploded的选项。
 
Reference
 

Tomcat部署时war和war exploded区别以及如何实现热部署的更多相关文章

  1. Tomcat创建虚拟目录和程序热部署

    虚拟目录的设置 方法一:在${tomcat安装目录}/conf/Catalina/localhost目录下添加与web应用同名的xml配置文件,这里站点名称为test为例子. test.xml内容:& ...

  2. 持续集成环境--Tomcat热部署导致线程泄漏

    一.问题由来 我们组用jenkins部署了持续集成环境,(jenkins部署war包到远程服务器的tomcat). 每次提交了代码,jenkins上一键构建,就可以自动拉取最新代码,打war包,热部署 ...

  3. Tomcat 映射虚拟目录和程序热部署

    虚拟目录的设置 方法一:在${tomcat安装目录}/conf/Catalina/localhost目录下创建一个xml文件,任意文件名都可以,但是此文件名是web应用发布后的虚拟目录: 比如创建一个 ...

  4. idea tomcat 热部署

    一有改动就在页面显示改动的东西就称为idea tomcat 热部署,开发的时候热部署一定要是demo:war exploded状态,若是在demo:war状态,怎么配置都不可能热部署,然后还要做如下的 ...

  5. maven plugin在tomcat 热部署

    前言: 此处的方法适用于tomcat6 和 tomcat7,对于最新的tomcat8还没有进行过測试,有兴趣的同学能够自己測一下. 总共分为五步:         1.在tomcat中配置用户权限,即 ...

  6. eclipse 于 Tomcat于 热部署 project

    eclipse在 Tomcat中热部署project 1.在eclipse中国安装一个tomcat插件:SysdeoEclipse Tomcat Launcher plugin(http://www. ...

  7. maven+tomcat热部署

    1.首先修改tomcat安装目录下的conf文件夹中的tomcat-user.xml文件 <role rolename="manager-gui"/> <role ...

  8. .NET 实现启动时重定向程序运行路径及 Windows 服务运行模式部署

    日常工作中有时候会遇到需要将程序直接在服务器上运行,而不依赖于 IIS 托管的情况,直接运行有两种方式,一种是部署为 服务模式,另一种则是 直接启动 .NET 发布之后的 exe 文件以 控制台模式运 ...

  9. IntelliJ IDEA 14 利用JRebel实现热部署

    特别鸣谢:http://wlb.wlb.blog.163.com/blog/static/467413201522095132658/ ©IntelliJ IDEA开源社①群 185441009 鸣谢 ...

随机推荐

  1. numix Docky

    今天我们介绍这款主题适用于 Docky 启动器的 numix 主题,关于 Docky 大家已经应该很熟悉了,一款类似 Mac 底部软件停放的快捷启动码头.如图: 这款主题是 Docky 的主题,如果你 ...

  2. 从零开始搭建自己的.NET Core Api框架-1目录

    https://www.cnblogs.com/RayWang/p/9216820.html 系列目录 一.  创建项目并集成swagger 1.1 创建 1.2 完善 二. 搭建项目整体架构 三. ...

  3. luogu题解P1967货车运输--树链剖分

    题目链接 https://www.luogu.org/problemnew/show/P1967 分析 NOIp的一道裸题,直接在最大生成树上剖分取最小值一下就完事了,非常好写,常数也比较小,然而题解 ...

  4. Java中的ThreadLocal详解

    一.ThreadLocal简介 多线程访问同一个共享变量的时候容易出现并发问题,特别是多个线程对一个变量进行写入的时候,为了保证线程安全,一般使用者在访问共享变量的时候需要进行额外的同步措施才能保证线 ...

  5. elementui禁用树形结构全部复选框

    需求:编辑回显数据后,禁用树形结构复选框,不可选中,无复选框也不可选中 <el-tabs v-model="activeName" @tab-click="hand ...

  6. Eclipse安装windowsbuilder

    详见:https://www.cnblogs.com/plusplus/p/9864708.html https://www.cnblogs.com/lsy-blogs/p/7717036.html ...

  7. MySQL无法启动问题解决Warning: World-writable config file ‘/etc/my.cnf’ is ignored

    今天重启一台内网服务器,发现mysql无法正常重启,执行systemctl start mysql,报错如下 Starting LSB: start and stop MySQL... Dec 11 ...

  8. Java学习第一天之简单了解java语言及开发环境的安装

    一.初步了解Java语言 Java语言是由Sun公司的James Gosling创造的一门面向对象的高级语言. 2009年4月20日,Sun公司被Oracle以总价值约为74亿美元的价格收购,Java ...

  9. CLR ATL

    前段时间,帮人改了个项目,里面明明感觉是MFC,但是却调用C#的类函数,用的都是gcnew指针,凭借着对C#的熟悉,一点一点的实验,终于帮人把程序改好了,但是却不知道到底是什么东西,C#和MFC的混合 ...

  10. 用js刷剑指offer(合并两个排序的链表)

    题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. 牛客网链接 js代码 /*function ListNode(x){ this.val = x; ...