war和war exploded的区别
使用IDEA配置Tomcat服务的时候,在 Select Artifacts to Deploy 选项中相同项目名有war和 war exploded 两种模式,之前只是傻乎乎的
随机选
一个,知其然而不知其所以然。今天探究一下二者的区别。
.png)
-
war模式:将web工程以war包的形式上传到服务器;
-
war exploed模式:将web工程以当前文件夹的位置关系上传到服务器。
通俗地说,war模式先打成war包,然后再发布到Tomcat的ROOT下。所以选择这个模式后,你再看下你的tomcat的root
文件夹下,是刚打成的项目。war exploded模式只编译
生成target,然后把当前的target
文件夹的位置关系
上传到服务器,没有打包到tomcat的ROOT下。因此这种方式
支持热部署,一般在开发的时候也是用这种方式,关于热部署,下面详细介绍一下。
热部署
在平时开发的时候,每次
修改代码都需要重启一次Tomcat的确不方便,如果使用热部署,可以大大减轻工作量,此时应该对Tomcat进行相应的设置,这样的话
修改的jsp界面什么的东西才可以及时的
显示出来。需要在Tomcat做如下设置:
.png)
-
on ‘update‘ action:当用户主动执行更新的时候更新 快捷键:Ctrl + F9
-
on frame deactication:在编辑窗口失去焦点的时候更新
你可以根据自己的需求进行设置,我这里两个都有设置。
然后启动IDEA的
自动编译
功能。Intellij IDEA
默认
关闭了
自动编译,在Setting中找到 Build,Execution,Deployment => Compiler,勾选Build Project automatically。
.png)

on frame deactivation热部署缺点:基于JVM提供的热加载仅
支持方法块内
代码修改,只有在debug模式下,并且idea失去焦点时才会触发热加载,相对加载速度缓慢。
如果你的工程中没有选项 Update classes and resources ,那么,只能更新classes
文件中的变动,并不能更新
静态文件中的变动。
.png)

出现这种选项情况的原因是在配置Deployment时选择了包含war的包,如全部都是war exploded则不会出现这种情况。召唤Update classes and resources的方式:先remove当前工程所有的Artifacts,再次
添加,
添加的时候在Artifact清单中仅仅选择工程
名称后面有 exploded的选项。
Reference
-
https://www.cnblogs.com/hhhd/p/6640875.html
-
https://www.jianshu.com/p/5719458486f
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。