浪子逍遥遥
2017-06-01 17:40:26
java web项目发布到tomcat时配置不打包jar的方案记录
每次更新部署项目,打包上传的war包因为依赖很多jar包,所以显得非常大.等待上传就要花费很多时间了.找了些资料,发现可以通过设置tomcat的shared.loader加载项目依赖的jar包.
一.配置tomcat
1.创建依赖jar包的存放目录shared(名字路径自取),然后把依赖相关的jar复制进去
2.修改tomcat目录下conf/catalina.properties文件,把shared.loader属性修改如下:shared.loader="${catalina.home}/lib/shared","${catalina.home}/lib/shared/*.jar"(我存放的是tomcat的lib目录下)
二.项目配置
1.普通web项目的配置
1).部署移除jar包
项目右键Properties,找到如下:
2).部署,通过myeclipsenei内置tomcat部署或者war打包部署.项目里面是不再包含依赖的jar包,项目启动成功
2.maven项目配置
1).<dependency></dependency>配置直接加上<optional>true</optional>,配置如下:
2).maven打包
三.结果
打包结果如下:ssm.war打包后26+Mb,demo-ssm打包后只有15kb,都能正常部署
四.问题
1.优点:多个项目相同jar包的话,tomcat启动加载一次就够了,而不需要每个项目都加载一次,能有效防止tomcat多次加载项目中重复的jar包,造成内存溢出异常;
2.缺点:每次启动tomcat都会加载jar包,如果项目不依赖的话,就多余了.
建议把一些公共经常用到的jar包可以这么做.
评论

wangshiwei123 LV1
2020年8月30日
有时候简简单单就好了 LV4
2020年6月30日
ideathink LV8
2020年4月20日
lryepoch LV7
2020年4月6日
爱疯大魔王 LV1
2020年2月24日
Nash13
2019年7月7日
暂无贡献等级
wangchuanli LV5
2019年4月23日
z875152686 LV8
2019年4月4日
胡子小猿
2018年11月13日
暂无贡献等级
cszfgjj2018
2018年9月17日
暂无贡献等级