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. (五)Activiti之查看最新版本的流程定义

    一.查看最新版本的流程定义 因为每个流程定义都可能会有好几个版本,所以有时候我们有这样的需求,查询出最新版本的流程定义的集合 第一步:我们通过Activiti接口来获取根据流程定义Version升序排 ...

  2. Https请求被中止: 未能创建 SSL/TLS 安全通道

    可以参考https://www.cnblogs.com/ccsharp/p/3270344.html 和https://blog.csdn.net/baidu_27474941/article/det ...

  3. pyodbc报错pyodbc.InterfaceError

    connection = pyodbc.connect(r'Driver={SQL Server Native Client 11.0};Server=...;Database=...;Trusted ...

  4. angular select 的第一行option 空白问题

    记录一下这个问题的解决方案 <select class="form-control" ng-init="vm.columnId = vm.columnList[0] ...

  5. Linux基本命令 vi操作和插件

    基本命令 vim命令 常用插件 基本命令 查看Tomcat日志: tail -n 20 -f catalina.out 查看指定列表: find ./ -name 'ser*' 搜索指定文件: loc ...

  6. pycharm2017.3版本永久激活

    1.下载破解文件 链接:https://pan.baidu.com/s/1nwI278l 密码:j3gt 2.修改检测文件 ,在文件后缀是vmoptions的 文件中加入(注意是文件中,不是文件后缀上 ...

  7. (13)input输入函数

    (1)input 等待用户动态输入一个值,注意得到的值是一个字符串类型 提示用户输入用户名和密码: 如果用户名是admin , 并且密码是000 , 提示用户恭喜你,登陆成功 否则提示用户名或密码错误 ...

  8. PAT Basic 1075 链表元素分类 (25 分)

    给定一个单链表,请编写程序将链表元素进行分类排列,使得所有负值元素都排在非负值元素的前面,而 [0, K] 区间内的元素都排在大于 K 的元素前面.但每一类内部元素的顺序是不能改变的.例如:给定链表为 ...

  9. linux实操_shell判断语句

    常用判断条件: (1)两个数的比较 = 字符串的比较 -lt 小于 -le 小于等于 -eq 等于 -gt 大于 -ge 大于等于 -ne 不等于 (2)按照文件权限进行判断 -r 有读的权限 -w ...

  10. C# List<T> 集合使用

    1.初始化集合 , ); , ); , ); ) { graham, emerson, mario }; 2. 添加元素 racers.Add(, )); racers.Add(, )); racer ...