【项目部署】部署项目以war包部署和解开以目录部署的区别
我们都知道最简单的部署web项目的方式是打成war包直接仍在tomcat的webapps目录下,我上个项目也确实是这样做的,可是这给我们后期的维护带来了极大的不便,下面就简单研究一下以war包部署和解开部署的区别。
1.以war包部署:(适用于全量部署)
利用eclipse或者maven等工具可以直接生成war包,如下:

现在我们直接将它丢到tomcat的webapps目录下:(如果tomcat是启动状态也可以直接扔在下面,tomcat会自动扫描war包并解压)

查看解压后的目录结构:(相当于eclipse的webapp,我们写的代码编译之后放在WEB-INF的classes目录下,引用的第三方jar包在WEB-INF的lib目录下)

到此部署成功,可以直接访问。
现在假如我们的项目因为需求变化需要重新补丁,但是就是因为修改了几个类我们需要重新部署,方法:
删除war包之后重新打包部署-----此方法肯定成功,但是效率极低。每次都得传输大量的jar包,只第三方的jar包就200M。
而且我们删掉Exam.war之后tomcat会自动去掉Exam目录,也就是清除掉此项目。也就是此项目依赖于war包,给维护带来极大不便。
2.以目录的形式部署(尽量使用这种)
- 在上面打好的war之后,将war包解压:

- 将我们写的代码编译之后的class文件进行打包,打成jar包放到lib目录下。
(1)打包: 也就是将编译之后的class文件打包
liqiang@root MINGW64 ~/Desktop/新建文件夹 (2)/WEB-INF/classes
$ pwd
/c/Users/liqiang/Desktop/新建文件夹 (2)/WEB-INF/classes liqiang@root MINGW64 ~/Desktop/新建文件夹 (2)/WEB-INF/classes
$ jar cvf exam-1.0.jar ./cn
(2)删掉原来class文件将上面的jar放到WEB-INF\lib目录下
- 将上面的文件夹放到webapps目录下启动tomcat即可
注意:此时WEB-INF目录下只有我们的配置文件,我们的class文件在上面打成jar包放到WEB\lib目录下。
我认为这种方式部署的好处是可以增量部署,我们如果在后期修改bug之后代码变了我们只需要将我们编译之后的代码重新打成jar包传到服务器(只用传一个jar包),如果我们是增加功能我们可以生成新的jar包放到WEB\lib目录,如果增加了新的配置文件我们可以放到WEB-INF\classes目录下,当然配置文件也可以打在jar包中。
也就是我们在项目部署的时候尽量使用目录部署,便于后期修复bug与增加功能,可以实现增量部署。
mysql安装的时候也尽量使用集成安装的方式,便于控制,mysql集成安装参考: https://www.cnblogs.com/qlqwjy/p/9484582.html
【项目部署】部署项目以war包部署和解开以目录部署的区别的更多相关文章
- Linux下部署tomcat及tomcat war包应用程序
1, 通过winscp将tomcat包(6和7版本都是一样的安装方法)和jdk-6u27-linux-x64.bin安装文件传送到linux 系统/opt里面.(这里没有固定要传送到/opt/hn,可 ...
- (转)Linux下部署tomcat及tomcat war包应用程序
原文:http://www.cnblogs.com/smallfa/news/2017/07/17/7193620.html 1, 通过winscp将tomcat包(6和7版本都是一样的安装方法)和j ...
- 彻底解决java WEB项目的文件路径问题(war包)
在j2EE项目中,我们通常会把项目打包公布,通常是war包,作为独立单元,能够远程上传,载入,公布,还能够实现版本号控制,但这与我们开发过程中使用MyEclipse自己主动部署有所不同,下面做具体说明 ...
- springBoot 项目war包部署及改为war包后资源路径错误问题
参考资料: https://blog.csdn.net/rico_zhou/article/details/83415114 https://blog.csdn.net/pz641/article/d ...
- Docker实现运行tomcat并部署项目war包,并实现挂载目录
之前写的有点乱,现在再来整理一下docker的简单部署运行 借鉴博客:https://blog.csdn.net/qq_32351227/article/details/78673591 一.dock ...
- 基于springboot多模块项目使用maven命令打成war包放到服务器上运行的问题
首先,大家看到这个问题,可能并不陌生,而且脑子里第一映像就是使用mava中的clear package 或者 clear install进行打包,然后在项目中的target文件夹下面找到xxx.war ...
- Java的JAR包, EAR包 ,WAR包 都是干什么的,有什么区别
JAR包:打成JAR包的代码,一般作为工具类,在项目中,会应用到N多JAR工具包: WAR包:JAVA WEB工程,都是打成WAR包,进行发布,如果我们的服务器选择TOMCAT等轻量级服务器,一般就打 ...
- tomcat如何配置启动时自动部署webapps下的war包
1.找到 tomcat安装目录/conf/server.xml 2.修改host元素的配置如下: <Host name="localhost" appBase="w ...
- IntelliJ IDEA打包WAR并部署运行(mac osx)将Web项目War包部署到Tomcat服务器基本步骤(完整版)
用IntelliJ IDEA做web开发体验很好,但导出war包比eclipse麻烦了不少,以下是解决方案: 打包:1.自动打包:File —> Project Structure —> ...
随机推荐
- M1事后分析报告
在得到M1团队成绩之后,每个团队都需要编写一个事后分析报告,对于团队在M1阶段的工作做一个总结. 请在2015年11月24日上课之前根据下述博客中的模板总结前一阶段的工作,发表在团队博客上,并在课上的 ...
- 第三周 构造一个简单的Linux系统MenuOS
一. Linux内核源代码简介 稳定版内核:Linux-3.18.6 Linux内核源代码的目录结构: arch目录:在Linux内核源代码里占有的比重很大,因为Linux内核支持很多的体系结构, ...
- Spring sprint @ first day
前几天,我们讨论出任务划分.结合任务及个人情况,我认领校园网认证和网盘服务这块. 认证原理整3天,尝试编译2天,整合模块5天. 日期 时间 地点 工作 5.11 20:00 九实 下载mentohus ...
- 一本通1625【例 1】反素数 Antiprime
反素数 Antiprime 题目描述 原题来自:POI 2001 如果一个大于等于 1 的正整数 n,满足所有小于 n 且大于等于 1 的所有正整数的约数个数都小于 n 的约数个数,则 n 是一个反素 ...
- Rust 阴阳谜题,及纯基于代码的分析与化简
Rust 阴阳谜题,及纯基于代码的分析与化简 雾雨魔法店专栏 https://zhuanlan.zhihu.com/marisa 来源 https://zhuanlan.zhihu.com/p/522 ...
- BZOJ2322 [BeiJing2011]梦想封印 【set + 线性基】
题目链接 BZOJ2322 题解 鉴于BZOJ2115,要完成此题,就简单得多了 对图做一遍\(dfs\),形成\(dfs\)树,从根到每个点的路径形成一个权值,而每个返祖边形成一个环 我们从根出发去 ...
- 【洛谷P1087】FBI树
题目大意:后序遍历 题解:建立二叉树的码风不知道怎么突然跟线段树一样了...当然,这道题不建树也是可以的. 代码如下 #include <bits/stdc++.h> using name ...
- EasyUI 格式化列
以下实例格式化在 easyui DataGrid 里的列数据,并使用自定义列的 formatter,如果价格小于 20 就将文本变为红色. 为了格式化一个数据网格(DataGrid)列,我们需要设置 ...
- Git基本知识
一,安装 Ubuntu安装git:sudo apt-get install git-core Centos安装git:yum install git-core 二,配置身份---在提交代码时可以辨别身 ...
- angularJs的各种服务和指令的使用场景
$location服务,获取页面跳转带的参数 比如说页面是这样的 localhost:9102/admin/goods.html#?id=123 如何获取这个id=123的值呢?????(注意: ...