如何快速有效降低 JavaCV 依赖包体积?

简介: 如何快速有效降低 JavaCV 依赖包体积?

👋如何快速有效降低 JavaCV 依赖包体积?

⚽️小叙

相信很多同学在刚开始使用 JavaCV 计算机视觉库进行开发的时候都会碰到这个问题,JavaCV视觉库内包含丰富的常用工具包,包括:OpenCV, FFmpeg, libdc1394, FlyCapture, Spinnaker, OpenKinect, librealsense, CL PS3 Eye Driver, videoInput, ARToolKitPlus, flandmark, Leptonica, and Tesseract… 博主就不一一列举了,感兴趣的同学可以查看相关源码,地址如下:JavaCV

博主正在开发音视频流采集录制功能,需要用到的工具包主要包括 OpenCV, FFmpeg以及平台相关的依赖包,但并不需要用到所有的依赖,优化和降低依赖包体积的需求就出现了。

待我查阅了相关的资料,整理并提供了以下快速解决方案,请往下看。

⚽️冗余的依赖包

博主粗略的计算了一下,javacv-platform依赖包大概 883.5MB ,噩待优化。

<dependency>
    <groupId>org.bytedeco</groupId>
    <artifactId>javacv-platform</artifactId>
    <version>1.5.8</version>
  </dependency>

以下图片是冗余的项目Jar包,里面包含大量未使用到的依赖

⚽️优化后的依赖包

以下依赖项可根据不同的平台变量进行切换,方便适配各平台进行开发

<properties>
        <javacv.version>1.5.8</javacv.version>
        <javacv.opencv.version>4.6.0-1.5.8</javacv.opencv.version>
        <javacv.ffmpeg.version>5.1.2-1.5.8</javacv.ffmpeg.version>
        <javacv.openblas.version>0.3.21-1.5.8</javacv.openblas.version>
        <javacpp.platform.android-arm>android-arm</javacpp.platform.android-arm>
        <javacpp.platform.android-arm64>android-arm64</javacpp.platform.android-arm64>
        <javacpp.platform.android-x86>android-x86</javacpp.platform.android-x86>
        <javacpp.platform.android-x86_64>android-x86_64</javacpp.platform.android-x86_64>
        <javacpp.platform.ios-arm>ios-arm</javacpp.platform.ios-arm>
        <javacpp.platform.ios-arm64>ios-arm64</javacpp.platform.ios-arm64>
        <javacpp.platform.ios-x86>ios-x86</javacpp.platform.ios-x86>
        <javacpp.platform.ios-x86_64>ios-x86_64</javacpp.platform.ios-x86_64>
        <javacpp.platform.macosx-x86_64>macosx-x86_64</javacpp.platform.macosx-x86_64>
        <javacpp.platform.linux-armhf>linux-armhf</javacpp.platform.linux-armhf>
        <javacpp.platform.linux-arm64>linux-arm64</javacpp.platform.linux-arm64>
        <javacpp.platform.linux-ppc64le>linux-ppc64le</javacpp.platform.linux-ppc64le>
        <javacpp.platform.linux-x86>linux-x86</javacpp.platform.linux-x86>
        <javacpp.platform.linux-x86_64>linux-x86_64</javacpp.platform.linux-x86_64>
        <javacpp.platform.windows-x86>windows-x86</javacpp.platform.windows-x86>
        <javacpp.platform.windows-x86_64>windows-x86_64</javacpp.platform.windows-x86_64>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.bytedeco</groupId>
            <artifactId>javacpp</artifactId>
            <version>${javacv.version}</version>
            <classifier>${javacpp.platform.windows-x86_64}</classifier>
        </dependency>
        <dependency>
            <groupId>org.bytedeco</groupId>
            <artifactId>openblas</artifactId>
            <version>${javacv.openblas.version}</version>
            <classifier>${javacpp.platform.windows-x86_64}</classifier>
        </dependency>
        <dependency>
            <groupId>org.bytedeco</groupId>
            <artifactId>opencv</artifactId>
            <version>${javacv.opencv.version}</version>
            <classifier>${javacpp.platform.windows-x86_64}</classifier>
        </dependency>
        <dependency>
            <groupId>org.bytedeco</groupId>
            <artifactId>ffmpeg</artifactId>
            <version>${javacv.ffmpeg.version}</version>
            <classifier>${javacpp.platform.windows-x86_64}</classifier>
        </dependency>
        <dependency>
            <groupId>org.bytedeco</groupId>
            <artifactId>javacv</artifactId>
            <version>${javacv.version}</version>
        </dependency>
    </dependencies>

使用以上优化后的依赖,体积直接减少了 807MB

⚽️总结

阶段 体积
初始包 69.5MB
优化前 953MB
优化后 146MB

通过图表可以看出,优化效果还是非常明显的,又可以愉快的进行开发了。写作不易,一键三连。

👬 交友小贴士:

博主GithubGitee同名账号,Follow 一下就可以一起愉快的玩耍了,更多精彩文章请持续关注。

目录
相关文章
|
5天前
|
Java
pandora boot热点应用探索问题之maven-compiler-plugin耗时较长的问题如何解决
pandora boot热点应用探索问题之maven-compiler-plugin耗时较长的问题如何解决
|
2月前
|
Java Linux
springboot打包部署,分离依赖减少上传体积
springboot打包部署,分离依赖减少上传体积
25 0
|
3月前
|
Java Maven
maven引入本地jar不能打入部署包的问题解决
maven引入本地jar不能打入部署包的问题解决
37 0
|
消息中间件 JavaScript 小程序
jar包太大?手把手教你分析 Maven 依赖,完成瘦身优化!
jar包太大?手把手教你分析 Maven 依赖,完成瘦身优化!
|
Java Maven
Maven下载依赖包速度慢问题
Maven下载依赖包速度慢问题
|
XML 缓存 Java
来更快的Maven了,我的天,速度提升了8倍!(1)
更快的Maven来了,我的天,速度提升了8倍!(1)
747 0
来更快的Maven了,我的天,速度提升了8倍!(1)
|
Java Maven
更快的Maven来了,我的天,速度提升了8倍!(2)
更快的Maven来了,我的天,速度提升了8倍!(2)
129 0
更快的Maven来了,我的天,速度提升了8倍!(2)
|
Java 测试技术 Maven
更快的Maven来了,我的天,速度提升了8倍!(3)
更快的Maven来了,我的天,速度提升了8倍!(3)
160 0
更快的Maven来了,我的天,速度提升了8倍!(3)
|
Java Maven Spring
更快的Maven构建工具mvnd和Gradle哪个性能更好?(4)
更快的Maven构建工具mvnd和Gradle哪个性能更好?(4)
177 0
更快的Maven构建工具mvnd和Gradle哪个性能更好?(4)
|
Java Maven
更快的Maven构建工具mvnd和Gradle哪个性能更好?(5)
更快的Maven构建工具mvnd和Gradle哪个性能更好?(5)
229 0
更快的Maven构建工具mvnd和Gradle哪个性能更好?(5)