maven工程war包越来越大问题解决

公司采用maven做jar包的管理控制,但伴随着开发会有一些第三方插件的引入,造成工程war包越来越大。

分析war包越来越大的原因:

1、java代码引入的jar包,以及jar包的间接引入(哪怕工程没有间接使用,jar包依然被引入)

2、前端代码引入第三方插件有冗余

3、工程里面有不该存在的大文件

 

针对这三个问题,依次采用不同的方法处理:

1、jar包引入:

使用Maven analyze来进行分析pom

命令如下:

mvn dependency:analyze

 在eclipse中使用命令如图:

点击run运行分析,查看console,

找到以下两个部分的内容,里面会分析出当前java工程、web工程里面有哪些jar包没有在java代码直接使用到,根据这些内容作为参考,可以删除pom里面无用的引用。

Used undeclared dependencies found

Unused declared dependencies found

不懂以上两个命令的,可以查看这篇文章了解一下:通过对Maven的依赖分析剔除无用的jar引用

进行了上面的步骤之后,其实还有一些jar包的依赖没被分析出来,这时候就需要开发者自己根据对项目的了解程度去修改pom文件了,举个例子:我的工程代码里面用到了爬虫,使用jar包为crawler4j:

                <dependency>
			<groupId>edu.uci.ics</groupId>
			<artifactId>crawler4j</artifactId>
			<version>4.4.0</version>
		</dependency>

但crawler4j本身引用了其他的jar包,这些jar包我没有使用到,却也打进了war包里面,这时就需要对这些jar包进行排除,使用代码如下:

                <dependency>
			<groupId>edu.uci.ics</groupId>
			<artifactId>crawler4j</artifactId>
			<version>4.4.0</version>
			<exclusions>
				<exclusion>
					<groupId>ch.qos.logback</groupId>
					<artifactId>logback-core</artifactId>
				</exclusion>
				<exclusion>
					<groupId>ch.qos.logback</groupId>
					<artifactId>logback-classic</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

对jar包进行排除,需要自己去调整,需要自己多尝试。

2、前端引入插件

前端攻城狮在代码中引入了第三方插件,把插件直接放在了工程里面,而且插件里面明显带有“docs”、“demos”文件夹,这些文件夹里面的东西在工程中根本没有使用到。但在打war包的过程中,这些文件也被写入war中。

解决办法:确定这些文件无用后,直接删除

3、工程里的大文件

工程里面会有没用到的文件,例如图片、二进制文件。我的工程里面,找到了两个图片,这两个图片每个大小为15M,图片的清晰程度非常高,不在正常使用范围内。这个时候,使用ps把图片调整到可接受的程度,图片大小变为500k。

针对每用到的大图片或大文件,删掉即可。

经过以上3步,我的工程war包缩小了三分之一!

war包大小及调整手段:

调整前:127M

使用maven分析jar包后:123M

根据经验删除jar包后:117

再次根据经验删除jar包后:116M

ps调整两个大图片后:87.6M

删除前端插件无用文件后:79.5M

狗年最后一文,晚上离京回家,愿来年猪事顺利!

 

另:还有可以缩小war包方法,使用代码混淆,理论可以再减少25%jar包,来年有需要的时候继续研究。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值