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. 解决 Linux grep 不高亮显示

    今天偶然发现一个问题,在 grep 日志的过程中,搜出来一大坨但是被 grep 的那一段未高亮显示,属实有些难受,高亮显示是 Linux 的高亮本来就是 Linux 的功能,与连接工具(我用的 xsh ...

  2. 使用layer.open 父页面获取子页面输入文本框中的值

    $(function () { $("#confirmpassword").click(function () { var pwd = $("#txtPwd") ...

  3. 四、TreeSet

    HashSet 是无序的,如果要对集合实现排序,那么就需要使用TreeSet 让TreeSet 实现集合有序有两种方法 一.让元素自身具备比较排序功能,具备比较排序功能的元素只需要实现Comparab ...

  4. 用cef Python打造自己的浏览器

    背景 项目需要做一个客户端的壳,内置浏览器,访问指定 的url 采用技术 python3.5 cefpython https://github.com/cztomczak/cefpython#inst ...

  5. vi/vim常用按键

    最近这段时间坚持了vim的使用,我在我的IDEA里面加了一个插件,可以支持vim. 然后不管是IDEA还是Vim都有自己的按键,而且都很好用,所以我就总结下在IDEA下的vim使用命令 当然,都是原生 ...

  6. libssh

    1.SSH概念 ssh(secure shell),安全外壳协议,由IETF的网络小组所制定.ssh为建立在应用层基础上的安全协议.SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议. ...

  7. python基本应用--三元应用

    格式为:result=值1 if 条件 else 值2 如 a,b,c = 1,3,5 d =a if a>b else c 那么d的结果是多少? 其实可以使用if来完全表达 if a>b ...

  8. windows7重置网卡命令

    点击windows左下角菜单键,输入cmd 然后鼠标右键 cmd 以管理员身份运行,并输入命令 netsh winsock reset, 然后回车执行. 系统会提示要求重启计算机. 重启后即重置网卡成 ...

  9. inux中查看各文件夹大小命令:du -h --max-depth=1

    du [-abcDhHklmsSx] [-L <符号连接>][-X <文件>][--block-size][--exclude=<目录或文件>] [--max-de ...

  10. 带参数的动态sql

    CREATE PROC Procout(@input INT, @result INT output) AS BEGIN SET @result = @input END go DECLARE @in ...