ideaidea war tomcat 部署署 war和war exploded的区别

intellij idea如何打包war文件 - ITeye问答
现在编写了一个spring mvc helloworld 项目,使用的idea是intellij idea。
现在想把这个项目代码打包成war文件,然后扔到tomcat里。
请问intellij 如何打包war文件呢?
还是我直接进到根目录运行mvn命令呢?
pom.xml 配制成&package&war&/package&,点击maven-&install .
在Project Structure里选择Artifact,新建一个Web Application: Archive --& for XXX exploded,选择保存war包的路径,确定。然后Build Artifact,选这一个即可
已解决问题
未解决问题16198人阅读
Tomcat(3)
Web开发(30)
war和war exploded的区别
在使用IDEA开发项目的时候,部署Tomcat的时候通常会出现下边的情况:
是选择war还是war exploded 这里首先看一下他们两个的区别:
war模式:将WEB工程以包的形式上传到服务器 ;
war exploded模式:将WEB工程以当前文件夹的位置关系上传到服务器;
(1)war模式这种可以称之为是发布模式,看名字也知道,这是先打成war包,再发布;
(2)war exploded模式是直接把文件夹、jsp页面 、classes等等移到Tomcat 部署文件夹里面,进行加载部署。因此这种方式支持热部署,一般在开发的时候也是用这种方式。
(3)在平时开发的时候,使用热部署的话,应该对Tomcat进行相应的设置,这样的话修改的jsp界面什么的东西才可以及时的显示出来。
修改箭头指向的位置,这样的话就可以实现热部署。
使用war模式开发的时候遇到的坑
一、项目代码的位置如下:
上述项目为SSM项目。
二、部署使用的Tomcat位置:
三、用于获取上下文环境绝对路径的代码:
String contextPath = request.getSession().getServletContext().getRealPath("/")
四、两种方式的实验过程和结果:
(1)在使用war模式开发的时候,通过下边这段代码获取项目的相对路径:
String contextPath = request.getSession().getServletContext().getRealPath("/")
war模式始终是获取到的路径如下:
其中C:\Software\apache-tomcat-8.0.32 是我Tomcat的所在位置。
可以看出通过war模式是最终打包部署到Tomcat的位置。
(2)然后再看war exploded模式,同样进行设置,运行同一段代码,运行结果如下:
可以看出最终得到的是我这个项目的位置,其实就是这个项目target的位置。
根据上述(1)(2)的实验结果可以看到这两种方式得部署方式是不一样的,因此在获取项目的相对路径的时候得到的结果是不一样的。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1938193次
积分:21244
积分:21244
排名:第374名
原创:458篇
转载:45篇
评论:753条
(3)(5)(5)(3)(4)(4)(5)(5)(2)(6)(3)(5)(6)(2)(6)(4)(4)(4)(6)(2)(6)(12)(4)(6)(18)(9)(11)(14)(44)(50)(9)(30)(23)(12)(48)(55)(12)(14)(43)问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
IntelliJ IDEA 中部署Tomcat应用存在两个同名应用程序,一个带有exploded,另一个不带,请问他们有什么区别
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
没用过,但我看图猜谜,觉得应该一个代表war包,另一个代表解开了那个war包,不然你看下边都是一对的
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
IntelliJ IDEA它优秀的地方就是在于此,每创建一个新的WEB项目都会独立出一个TOMCAT服务, 其实最常用的是xxxx exploded这个包,它是在Tomcat运行时实际布署的内容,另外一个war一般没有找到它的输出地方。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
区别就是一个通过war包部署,一个展开后部署。部署项目的时候一般选第一个。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
好像是选exploded 才能让调试的时候及时修改的资源重载
同步到新浪微博
分享到微博?
你好!看起来你挺喜欢这个内容,但是你还没有注册帐号。 当你创建了帐号,我们能准确地追踪你关注的问题,在有新答案或内容的时候收到网页和邮件通知。还能直接向作者咨询更多细节。如果上面的内容有帮助,记得点赞 (????)? 表示感谢。
明天提醒我
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:IntelliJ IDEA导出war包:
1)单击最左下角的选项按钮;
2)在右侧弹出的maven projects选项展开Lifecycle/package,双击或点击上面的执行按钮,即可;
3)默认会把打好的war包放在在target目录下。
默认情况下在IDEA maven项目中src源代码下的xml等资源文件,并不会在编译的时候一块打包进classes文件夹,而是直接舍弃掉。(如把mapper.xml及Analyzer词典等文件放在src/main/java目录下的情况)
在IDEA有两种方式解决:
1)建立src/main/resources文件夹,将xml等资源文件放置到这个目录中。maven工具默认在编译的时候,会将resources文件夹中的资源文件一块打包进classes目录中。
2)配置maven的pom文件配置,在pom文件中找到节点,添加下列代码:
&src/main/java&
&**/*.xml&
在Tomcat中部署war:
1、将war文件拷贝到tomcat目录webapps下(不要再建目录)。
2、将必要的jar文件拷贝到tomcat目录libxia下。 maven打包时已经将需要的jar打到class目录下,不再需要单独导包。
3、修改tomcat目录conf下的server.xml。
在中加入:
&Context path="/manager" docBase="manager" debug=“0" privileged="true"/&
path=“” 为部署后运行的url路径,可直接设定path为“”,则根目录直接打开;
docBase为你的war的文件名。 第一次运行的时候,tomcat会自动解压war,生成path指定名称的网站。这里docBase中的”manager”就表示war文件名称为“manager.war”;
reloadable:如果设置为”true”,则表示当你修改jsp文件后,不需要重启服务器就可以实现页面显示的同步.
4、完毕,通过bin/startup.sh启动tomcat 即可。
【注意:在低内存的服务器上,若要更新war包,最好先shutdown tomcat,否则直接替换war会加载大量的class到内存中,以致内存撑爆。】
【在1G的内存的免费版ES2,发现该问题,每次都需要重启实例,多么痛的领悟】
前端静态资源缓存的问题
若在新版本若修改了js,css等静态资源,在发布新版本时,一般通过war包进行替换,但在Chrome等浏览器中还缓存之前的静态资源,如不清除,则还使用之前的资源文件,就会出现资源访问错误。
一般可通过对js,css等静态资源文件变更文件名来解决。
如淘宝:cssjs的引入是通过他们的CDN分布式形式,而且后面带有?t=。作用:标注版本号;用随机数防止缓存。
对于上传的图片等静态资源的保存
1)千万不要将保存路径放置于运行环境下,应使用一个单独的绝对路径。(在发新的war包会将原运行环境的下目录都替换掉,若图片保存在运行环境下则会被清掉)
2)使用虚拟目录映射来解决请求的url与静态资源的映射。即将图片文件存放于一个单独的目录内,配置请求的url与该目录的映射关系,使在访问图片资源时自动从该独立的目录下去访问。
【注意:目录的路径是从根目录下的绝对路径,即保证能在任何目录都能直接使用cd命令打开的路径】
【若使用ngnix来控制静态资源的访问,则可以跳过!】
3)在tomcat/conf/server.xml中配置
path="/" docBase="FBlog" debug="0" privileged="true"/&
path="/uploads" docBase="///custom_file/uploads" reloadable=“false"/&
或者在spring-mvc.xml配置文件中使用
mapping="/post/**" location="file:///custom_file/uploads/"/&
博客地址:
本文已收录于以下专栏:
相关文章推荐
Intellij IDEA 创建Web项目并在Tomcat中部署运行
一.创建Web项目
1、File -& New Module,进入创建项目窗口
  
intellij IDEA如何将Web项目导出为WAR包,直接部署到tomcat或者Jboss上?
将项目打成war包,复制到${tomcat.home}\webapps目录下.当tomcat启动...
用IntelliJ IDEA做web开发体验很好,但导出war包比eclipse麻烦了不少,以下是解决方案:
1.自动打包:
File —& Project Structur...
用maven管理的web项目,使用idea部署到tomcat中,有如下方式:
(1)Artifact: war
(2)Artifact: war exploded
(3)external source...
war和war exploded的区别在使用idea开发项目的时候,部署Tomcat的时候通常会出现下边的情况:
是选择war还是war exploded这里首先看一下他们两个的区别:
IntelliJ IDEA导出war包:
1)单击最左下角的选项按钮;
2)在右侧弹出的maven projects选项展开Lifecycle/package,双击或点击上面的...
idea 那么好用,早就把eclipse抛弃了。不过每次都是在给项目发包的时候,不得不重新打开eclipse导出为war包。感觉自己蠢蠢的。上网查了一下教程,按照网上的教程设置好了之后,运行项目发现并...
eclipse运行能在设置的输出路径生成war包,但idea运行项目发现并没有在设置好的输出路径生成war包。
需要单独设置。
首先点击这里进入项目的配置页面
build一下即可
他的最新文章
讲师:王哲涵
讲师:韦玮
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)有回复时邮件通知我
更多推荐关于本站憧憬点滴记忆(憧憬博客)是关注与分享互联网及软件IT技术的个人博客,同时也记录个人的一路点滴,所蕴含的包括前端、后端、数据库等知识,欢迎您关注我们。

我要回帖

更多关于 idea war tomcat 部署 的文章

 

随机推荐