浪子逍遥遥的gravatar头像
浪子逍遥遥 2017-06-01 17:40:26
java web项目发布到tomcat时配置不打包jar的方案记录

每次更新部署项目,打包上传的war包因为依赖很多jar包,所以显得非常大.等待上传就要花费很多时间了.找了些资料,发现可以通过设置tomcat的shared.loader加载项目依赖的jar包.

一.配置tomcat

1.创建依赖jar包的存放目录shared(名字路径自取),然后把依赖相关的jar复制进去

java web项目发布到tomcat时配置不打包jar的方案记录

2.修改tomcat目录下conf/catalina.properties文件,把shared.loader属性修改如下:shared.loader="${catalina.home}/lib/shared","${catalina.home}/lib/shared/*.jar"(我存放的是tomcat的lib目录下)

java web项目发布到tomcat时配置不打包jar的方案记录

二.项目配置

1.普通web项目的配置

1).部署移除jar包

项目右键Properties,找到如下:

java web项目发布到tomcat时配置不打包jar的方案记录

2).部署,通过myeclipsenei内置tomcat部署或者war打包部署.项目里面是不再包含依赖的jar包,项目启动成功

java web项目发布到tomcat时配置不打包jar的方案记录

java web项目发布到tomcat时配置不打包jar的方案记录

 

2.maven项目配置

1).<dependency></dependency>配置直接加上<optional>true</optional>,配置如下:

java web项目发布到tomcat时配置不打包jar的方案记录

2).maven打包

java web项目发布到tomcat时配置不打包jar的方案记录

 

三.结果

打包结果如下:ssm.war打包后26+Mb,demo-ssm打包后只有15kb,都能正常部署

java web项目发布到tomcat时配置不打包jar的方案记录

 

四.问题

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日
暂无贡献等级
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友