jar包突然过大解决方法
缘由:
项目中要需要用到视频文件,为了方便用户使用,那么页面中就需要增加视频剪辑的相关功能,让用户上传视频后能够自定义的进行剪辑,对自己的视频做出相应的更改
结果:
打jar包时发现jar包增加了将近800M! 这是什么鬼,一下子增加800M,简直乱来!
排查问题思路
-
确定打包是否真实(测试发现,自己操作打包尝试),真实~
-
回忆是否最近版本更改
pom
文件, 做视频时引入<dependency> <groupId>org.bytedeco</groupId> <artifactId>javacv-platform</artifactId> <version>1.5.5</version> </dependency>
-
解压jar包,倒序排列项目中引用的jar
-
使用pom插件
Maven Helper
在项目中搜索比较大的jar -
仔细发现该插件中引用了各个平台中的jar包, 但实际开发中并用不到这么多的jar包,所以无需引用那么多
去除无用jar
具体为什么这个改?在运行项目发现,视频剪辑报错,也就是上面提到的,多平台匹配的剪辑工具没有引入相关包,网络搜索其他方法发现,引入相关平台的包即可
更改方法:
只引入Windows 和 Linux平台视频剪辑功能,因为项目使用的也就这两个平台
如果嫌弃大的话,可以根据不同平台使用不同的
pom
文件, 做出单平台适应
<dependency>
<groupId>org.bytedeco</groupId>
<artifactId>javacv</artifactId>
<version>${javacpp.version}</version>
<classifier>windows-x86_64</classifier>
</dependency>
<dependency>
<groupId>org.bytedeco</groupId>
<artifactId>openblas-platform</artifactId>
<version>0.3.13-${javacpp.version}</version>
<classifier>windows-x86_64</classifier>
</dependency>
<dependency>
<groupId>org.bytedeco</groupId>
<artifactId>opencv-platform</artifactId>
<version>4.5.1-${javacpp.version}</version>
<classifier>windows-x86_64</classifier>
</dependency>
<dependency>
<groupId>org.bytedeco</groupId>
<artifactId>ffmpeg-platform</artifactId>
<version>4.3.2-${javacpp.version}</version>
<classifier>windows-x86_64</classifier>
</dependency>
<dependency>
<groupId>org.bytedeco</groupId>
<artifactId>flycapture-platform</artifactId>
<version>2.13.3.31-${javacpp.version}</version>
<classifier>windows-x86_64</classifier>
</dependency>
<dependency>
<groupId>org.bytedeco</groupId>
<artifactId>libdc1394-platform</artifactId>
<version>2.2.6-${javacpp.version}</version>
<classifier>windows-x86_64</classifier>
</dependency>
<dependency>
<groupId>org.bytedeco</groupId>
<artifactId>libfreenect-platform</artifactId>
<version>0.5.7-${javacpp.version}</version>
<classifier>windows-x86_64</classifier>
</dependency>
<dependency>
<groupId>org.bytedeco</groupId>
<artifactId>libfreenect2-platform</artifactId>
<version>0.2.0-${javacpp.version}</version>
<classifier>windows-x86_64</classifier>
</dependency>
<dependency>
<groupId>org.bytedeco</groupId>
<artifactId>librealsense-platform</artifactId>
<version>1.12.4-${javacpp.version}</version>
<classifier>windows-x86_64</classifier>
</dependency>
<dependency>
<groupId>org.bytedeco</groupId>
<artifactId>librealsense2-platform</artifactId>
<version>2.40.0-${javacpp.version}</version>
<classifier>windows-x86_64</classifier>
</dependency>
<dependency>
<groupId>org.bytedeco</groupId>
<artifactId>videoinput-platform</artifactId>
<version>0.200-${javacpp.version}</version>
<classifier>windows-x86_64</classifier>
</dependency>
<dependency>
<groupId>org.bytedeco</groupId>
<artifactId>artoolkitplus-platform</artifactId>
<version>2.3.1-${javacpp.version}</version>
<classifier>windows-x86_64</classifier>
</dependency>
<dependency>
<groupId>org.bytedeco</groupId>
<artifactId>flandmark-platform</artifactId>
<version>1.07-${javacpp.version}</version>
<classifier>windows-x86_64</classifier>
</dependency>
<dependency>
<groupId>org.bytedeco</groupId>
<artifactId>leptonica-platform</artifactId>
<version>1.80.0-${javacpp.version}</version>
<classifier>windows-x86_64</classifier>
</dependency>
<dependency>
<groupId>org.bytedeco</groupId>
<artifactId>tesseract-platform</artifactId>
<version>4.1.1-${javacpp.version}</version>
<classifier>windows-x86_64</classifier>
</dependency>