org.bytedeco依赖包的问题

org.bytedeco依赖包的问题

今天遇到一个需求,需要对用户上传的视频内容进行安全检测(如涉政、暴恐、色情之类的),我们公司使用的阿里云内容安全服务,然后需要对视频进行截帧上传检测。网上找来截帧代码改吧改吧,很快功能就好了。但是引用的相关依赖却是一片红色,而编译器里的红色,是我们程序员的宿敌,于是就一场持久战开始了。。

依赖方式一
<dependency>
    <groupId>org.bytedeco</groupId>
    <artifactId>javacv</artifactId>
    <version>1.4.1</version>
</dependency>
<dependency>
    <groupId>org.bytedeco</groupId>
    <artifactId>javacpp</artifactId>
    <version>1.4.1</version>
</dependency>
<dependency>
    <groupId>org.bytedeco.javacpp-presets</groupId>
    <artifactId>opencv-platform</artifactId>
    <version>3.4.1-1.4.1</version>
</dependency>

这个依赖方式出了三个问题
1.依赖冲突。特别多的依赖冲突。这些依赖自带的pom.xml文件有各种相互依赖,你中有我,我中有你。

然后就开始各种exclusion排除,结果就是红色没了,程序功能也跑不起来了。
出现诸如:
Cannot resolve org.bytedeco.XXX
Could not transfer artifact org.bytedeco.XXX
Could not initialize class org.bytedeco.javacpp.avutil
Could not load Loader: java.lang.UnsatisfiedLinkError: no jnijavacpp in java.library.path
。。。
之类的问题。
2.第二个问题
程序跑完没问题(依赖冲突还没有解决),功能也正常,然后出现了下图错误。这个超出了我能力范围,直接放弃。
在这里插入图片描述
第三个问题
这个问题因为影响不大,准备留着最后解决。

  The Class-Path manifest attribute in D:\maven\repository\org\bytedeco\javacv\1.5.6\javacv-1.5.6.jar referenced one or more files that do not exist: file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/javacpp-1.5.6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/openblas-0.3.17-1.5.6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/opencv-4.5.3-1.5.6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/ffmpeg-4.4-1.5.6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/flycapture-2.13.3.31-1.5.6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/libdc1394-2.2.6-1.5.6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/libfreenect-0.5.7-1.5.6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/libfreenect2-0.2.0-1.5.6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/librealsense-1.12.4-1.5.6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/librealsense2-2.44.0-1.5.6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/videoinput-0.200-1.5.6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/artoolkitplus-2.3.1-1.5.6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/flandmark-1.07-1.5.6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/leptonica-1.81.1-1.5.6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/tesseract-4.1.1-1.5.6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/android-4.1.1.4.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/gluegen-rt-main-2.3.2.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/gluegen-rt-2.3.2.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/gluegen-rt-2.3.2-natives-android-aarch64.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/gluegen-rt-2.3.2-natives-android-armv6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/gluegen-rt-2.3.2-natives-linux-amd64.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/gluegen-rt-2.3.2-natives-linux-armv6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/gluegen-rt-2.3.2-natives-linux-armv6hf.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/gluegen-rt-2.3.2-natives-linux-i586.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/gluegen-rt-2.3.2-natives-macosx-universal.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/gluegen-rt-2.3.2-natives-solaris-amd64.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/gluegen-rt-2.3.2-natives-solaris-i586.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/gluegen-rt-2.3.2-natives-windows-amd64.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/gluegen-rt-2.3.2-natives-windows-i586.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jogl-all-main-2.3.2.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jogl-all-2.3.2.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jogl-all-2.3.2-natives-android-aarch64.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jogl-all-2.3.2-natives-android-armv6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jogl-all-2.3.2-natives-linux-amd64.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jogl-all-2.3.2-natives-linux-armv6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jogl-all-2.3.2-natives-linux-armv6hf.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jogl-all-2.3.2-natives-linux-i586.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jogl-all-2.3.2-natives-macosx-universal.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jogl-all-2.3.2-natives-solaris-amd64.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jogl-all-2.3.2-natives-solaris-i586.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jogl-all-2.3.2-natives-windows-amd64.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jogl-all-2.3.2-natives-windows-i586.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jocl-main-2.3.2.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jocl-2.3.2.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jocl-2.3.2-natives-android-aarch64.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jocl-2.3.2-natives-android-armv6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jocl-2.3.2-natives-linux-amd64.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jocl-2.3.2-natives-linux-armv6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jocl-2.3.2-natives-linux-armv6hf.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jocl-2.3.2-natives-linux-i586.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jocl-2.3.2-natives-macosx-universal.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jocl-2.3.2-natives-solaris-amd64.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jocl-2.3.2-natives-solaris-i586.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jocl-2.3.2-natives-windows-amd64.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jocl-2.3.2-natives-windows-i586.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/javacpp.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/openblas.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/opencv.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/ffmpeg.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/flycapture.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/libdc1394.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/libfreenect.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/libfreenect2.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/librealsense.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/librealsense2.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/videoinput.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/artoolkitplus.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/flandmark.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/leptonica.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/tesseract.jar,
  The Class-Path manifest attribute in D:\maven\repository\org\bytedeco\openblas\0.3.17-1.5.6\openblas-0.3.17-1.5.6.jar referenced one or more files that do not exist: file:/D:/maven/repository/org/bytedeco/openblas/0.3.17-1.5.6/javacpp.jar
  The Class-Path manifest attribute in D:\maven\repository\org\bytedeco\opencv\4.5.3-1.5.6\opencv-4.5.3-1.5.6.jar referenced one or more files that do not exist: file:/D:/maven/repository/org/bytedeco/opencv/4.5.3-1.5.6/javacpp.jar
  The Class-Path manifest attribute in D:\maven\repository\org\bytedeco\flycapture\2.13.3.31-1.5.6\flycapture-2.13.3.31-1.5.6.jar referenced one or more files that do not exist: file:/D:/maven/repository/org/bytedeco/flycapture/2.13.3.31-1.5.6/javacpp.jar
  The Class-Path manifest attribute in D:\maven\repository\org\bytedeco\libdc1394\2.2.6-1.5.6\libdc1394-2.2.6-1.5.6.jar referenced one or more files that do not exist: file:/D:/maven/repository/org/bytedeco/libdc1394/2.2.6-1.5.6/javacpp.jar
  The Class-Path manifest attribute in D:\maven\repository\org\bytedeco\libfreenect\0.5.7-1.5.6\libfreenect-0.5.7-1.5.6.jar referenced one or more files that do not exist: file:/D:/maven/repository/org/bytedeco/libfreenect/0.5.7-1.5.6/javacpp.jar
  The Class-Path manifest attribute in D:\maven\repository\org\bytedeco\libfreenect2\0.2.0-1.5.6\libfreenect2-0.2.0-1.5.6.jar referenced one or more files that do not exist: file:/D:/maven/repository/org/bytedeco/libfreenect2/0.2.0-1.5.6/javacpp.jar
  The Class-Path manifest attribute in D:\maven\repository\org\bytedeco\librealsense\1.12.4-1.5.6\librealsense-1.12.4-1.5.6.jar referenced one or more files that do not exist: file:/D:/maven/repository/org/bytedeco/librealsense/1.12.4-1.5.6/javacpp.jar
  The Class-Path manifest attribute in D:\maven\repository\org\bytedeco\librealsense2\2.44.0-1.5.6\librealsense2-2.44.0-1.5.6.jar referenced one or more files that do not exist: file:/D:/maven/repository/org/bytedeco/librealsense2/2.44.0-1.5.6/javacpp.jar
  The Class-Path manifest attribute in D:\maven\repository\org\bytedeco\videoinput\0.200-1.5.6\videoinput-0.200-1.5.6.jar referenced one or more files that do not exist: file:/D:/maven/repository/org/bytedeco/videoinput/0.200-1.5.6/javacpp.jar
  The Class-Path manifest attribute in D:\maven\repository\org\bytedeco\artoolkitplus\2.3.1-1.5.6\artoolkitplus-2.3.1-1.5.6.jar referenced one or more files that do not exist: file:/D:/maven/repository/org/bytedeco/artoolkitplus/2.3.1-1.5.6/javacpp.jar
  The Class-Path manifest attribute in D:\maven\repository\org\bytedeco\flandmark\1.07-1.5.6\flandmark-1.07-1.5.6.jar referenced one or more files that do not exist: file:/D:/maven/repository/org/bytedeco/flandmark/1.07-1.5.6/javacpp.jar
  The Class-Path manifest attribute in D:\maven\repository\org\bytedeco\leptonica\1.81.1-1.5.6\leptonica-1.81.1-1.5.6.jar referenced one or more files that do not exist: file:/D:/maven/repository/org/bytedeco/leptonica/1.81.1-1.5.6/javacpp.jar
  The Class-Path manifest attribute in D:\maven\repository\org\bytedeco\tesseract\4.1.1-1.5.6\tesseract-4.1.1-1.5.6.jar referenced one or more files that do not exist: file:/D:/maven/repository/org/bytedeco/tesseract/4.1.1-1.5.6/javacpp.jar,
  The Class-Path manifest attribute in D:\maven\repository\org\bytedeco\ffmpeg\4.4-1.5.6\ffmpeg-4.4-1.5.6.jar referenced one or more files that do not exist: file:/D:/maven/repository/org/bytedeco/ffmpeg/4.4-1.5.6/javacpp.jar

于是继续各种搜索,找到一种新的依赖版本

依赖方式二
<dependency>
    <groupId>org.bytedeco</groupId>
    <artifactId>ffmpeg</artifactId>
    <version>4.3.1-1.5.4</version>
</dependency>-->
<!-- ffmpeg,可选 -->
<dependency>
    <groupId>org.bytedeco</groupId>
    <artifactId>ffmpeg-platform</artifactId>
    <version>4.3.1-1.5.4</version>
    </exclusions>
</dependency>

这个依赖比上一个依赖好。因为没有出现上述第二种问题了,但是第一个第三个问题依旧存在。
然后我想找到一种没有依赖冲突的包,于是找到了第三种。

依赖方式三
<dependency>
    <groupId>org.bytedeco</groupId>
    <artifactId>javacv</artifactId>
    <version>1.5.6</version>
 </dependency>-->
<dependency>
    <groupId>org.bytedeco</groupId>
    <artifactId>ffmpeg-platform</artifactId>
    <version>4.4-1.5.6</version>
 </dependency>-->

然而并没有卵用。依赖冲突依然存在,第三个问题也依然有。于是觉得不再寻找合适的依赖包了,自己手动排除冲突。
然后继续出现第一个问题最开始出现的各种问题

Could not transfer artifact org.bytedeco:ffmpeg:jar:android-x86:4.4-1.5.6 from/to alimaven-central (http://maven.aliyun.com/nexus/content/repositories/central/): GET request of: org/bytedeco/ffmpeg/4.4-1.5.6/ffmpeg-4.4-1.5.6-android-x86.jar from alimaven-central failed

这个就是依赖包没下载下来。找到maven仓库把LASTUPDATED文件删掉,重新下载。一次不行就删两次,两次不行就删三次。我删了四次。
在这里插入图片描述

Cannot resolve org.openjfx:javafx-graphics:11

看依赖结构,在org.bytedeco.javacv:1.5.6下面
在这里插入图片描述

这是什么包?我有用到吗?不要。

<dependency>
    <groupId>org.bytedeco</groupId>
    <artifactId>javacv</artifactId>
    <version>1.5.6</version>
    <exclusions>
        <exclusion>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-graphics</artifactId>
        </exclusion>
    </exclusions>
 </dependency>-->
Cannot resolve org.bytedeco:javacpp:1.5.6

org.bytedeco:javacpp?org.bytedeco:javacv下面不是有吗?你个org.bytedeco:ffmpeg-platform还引用一遍干嘛
在这里插入图片描述
然后加上exclusions排除

<dependency>
    <groupId>org.bytedeco</groupId>
    <artifactId>ffmpeg-platform</artifactId>
    <version>4.4-1.5.6</version>
    <exclusions>
        <exclusion>
            <groupId>org.bytedeco</groupId>
            <artifactId>javacpp</artifactId>
        </exclusion>
    </exclusions>
</dependency>

刷新引用,哎~一片和谐。愉快的跑一下功能,居然能用。
然而我的war包从原本的71M变成了现在的240多M。最主要的原因就是ffmpeg包,它里面有很多个jar包,打包的时候全打进去了。一个jar包就十几M
在这里插入图片描述
而我只需要一个就行。然而这里面没有linux和windows通用的,只能测试用windows版,运行用linux版。使用classifier指定具体引用,scope限制运行环境。于是依赖是这样的。

<dependency>
    <groupId>org.bytedeco</groupId>
    <artifactId>ffmpeg</artifactId>
    <version>4.4-1.5.6</version>
    <classifier>windows-x86_64</classifier>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>org.bytedeco</groupId>
    <artifactId>ffmpeg</artifactId>
    <version>4.4-1.5.6</version>
    <classifier>linux-x86_64</classifier>
    <scope>runtime</scope>
</dependency>

最后解决最开始的第一个问题。就是很多空引用的问题。当然这个可以放着不管,也没什么影响,就是项目跑起来的时候一堆提示很不爽

  The Class-Path manifest attribute in D:\maven\repository\org\bytedeco\javacv\1.5.6\javacv-1.5.6.jar referenced one or more files that do not exist: file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/javacpp-1.5.6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/openblas-0.3.17-1.5.6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/opencv-4.5.3-1.5.6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/ffmpeg-4.4-1.5.6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/flycapture-2.13.3.31-1.5.6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/libdc1394-2.2.6-1.5.6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/libfreenect-0.5.7-1.5.6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/libfreenect2-0.2.0-1.5.6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/librealsense-1.12.4-1.5.6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/librealsense2-2.44.0-1.5.6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/videoinput-0.200-1.5.6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/artoolkitplus-2.3.1-1.5.6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/flandmark-1.07-1.5.6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/leptonica-1.81.1-1.5.6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/tesseract-4.1.1-1.5.6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/android-4.1.1.4.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/gluegen-rt-main-2.3.2.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/gluegen-rt-2.3.2.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/gluegen-rt-2.3.2-natives-android-aarch64.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/gluegen-rt-2.3.2-natives-android-armv6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/gluegen-rt-2.3.2-natives-linux-amd64.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/gluegen-rt-2.3.2-natives-linux-armv6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/gluegen-rt-2.3.2-natives-linux-armv6hf.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/gluegen-rt-2.3.2-natives-linux-i586.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/gluegen-rt-2.3.2-natives-macosx-universal.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/gluegen-rt-2.3.2-natives-solaris-amd64.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/gluegen-rt-2.3.2-natives-solaris-i586.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/gluegen-rt-2.3.2-natives-windows-amd64.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/gluegen-rt-2.3.2-natives-windows-i586.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jogl-all-main-2.3.2.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jogl-all-2.3.2.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jogl-all-2.3.2-natives-android-aarch64.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jogl-all-2.3.2-natives-android-armv6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jogl-all-2.3.2-natives-linux-amd64.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jogl-all-2.3.2-natives-linux-armv6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jogl-all-2.3.2-natives-linux-armv6hf.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jogl-all-2.3.2-natives-linux-i586.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jogl-all-2.3.2-natives-macosx-universal.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jogl-all-2.3.2-natives-solaris-amd64.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jogl-all-2.3.2-natives-solaris-i586.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jogl-all-2.3.2-natives-windows-amd64.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jogl-all-2.3.2-natives-windows-i586.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jocl-main-2.3.2.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jocl-2.3.2.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jocl-2.3.2-natives-android-aarch64.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jocl-2.3.2-natives-android-armv6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jocl-2.3.2-natives-linux-amd64.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jocl-2.3.2-natives-linux-armv6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jocl-2.3.2-natives-linux-armv6hf.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jocl-2.3.2-natives-linux-i586.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jocl-2.3.2-natives-macosx-universal.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jocl-2.3.2-natives-solaris-amd64.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jocl-2.3.2-natives-solaris-i586.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jocl-2.3.2-natives-windows-amd64.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jocl-2.3.2-natives-windows-i586.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/javacpp.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/openblas.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/opencv.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/ffmpeg.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/flycapture.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/libdc1394.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/libfreenect.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/libfreenect2.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/librealsense.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/librealsense2.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/videoinput.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/artoolkitplus.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/flandmark.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/leptonica.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/tesseract.jar,
  The Class-Path manifest attribute in D:\maven\repository\org\bytedeco\openblas\0.3.17-1.5.6\openblas-0.3.17-1.5.6.jar referenced one or more files that do not exist: file:/D:/maven/repository/org/bytedeco/openblas/0.3.17-1.5.6/javacpp.jar
  The Class-Path manifest attribute in D:\maven\repository\org\bytedeco\opencv\4.5.3-1.5.6\opencv-4.5.3-1.5.6.jar referenced one or more files that do not exist: file:/D:/maven/repository/org/bytedeco/opencv/4.5.3-1.5.6/javacpp.jar
  The Class-Path manifest attribute in D:\maven\repository\org\bytedeco\flycapture\2.13.3.31-1.5.6\flycapture-2.13.3.31-1.5.6.jar referenced one or more files that do not exist: file:/D:/maven/repository/org/bytedeco/flycapture/2.13.3.31-1.5.6/javacpp.jar
  The Class-Path manifest attribute in D:\maven\repository\org\bytedeco\libdc1394\2.2.6-1.5.6\libdc1394-2.2.6-1.5.6.jar referenced one or more files that do not exist: file:/D:/maven/repository/org/bytedeco/libdc1394/2.2.6-1.5.6/javacpp.jar
  The Class-Path manifest attribute in D:\maven\repository\org\bytedeco\libfreenect\0.5.7-1.5.6\libfreenect-0.5.7-1.5.6.jar referenced one or more files that do not exist: file:/D:/maven/repository/org/bytedeco/libfreenect/0.5.7-1.5.6/javacpp.jar
  The Class-Path manifest attribute in D:\maven\repository\org\bytedeco\libfreenect2\0.2.0-1.5.6\libfreenect2-0.2.0-1.5.6.jar referenced one or more files that do not exist: file:/D:/maven/repository/org/bytedeco/libfreenect2/0.2.0-1.5.6/javacpp.jar
  The Class-Path manifest attribute in D:\maven\repository\org\bytedeco\librealsense\1.12.4-1.5.6\librealsense-1.12.4-1.5.6.jar referenced one or more files that do not exist: file:/D:/maven/repository/org/bytedeco/librealsense/1.12.4-1.5.6/javacpp.jar
  The Class-Path manifest attribute in D:\maven\repository\org\bytedeco\librealsense2\2.44.0-1.5.6\librealsense2-2.44.0-1.5.6.jar referenced one or more files that do not exist: file:/D:/maven/repository/org/bytedeco/librealsense2/2.44.0-1.5.6/javacpp.jar
  The Class-Path manifest attribute in D:\maven\repository\org\bytedeco\videoinput\0.200-1.5.6\videoinput-0.200-1.5.6.jar referenced one or more files that do not exist: file:/D:/maven/repository/org/bytedeco/videoinput/0.200-1.5.6/javacpp.jar
  The Class-Path manifest attribute in D:\maven\repository\org\bytedeco\artoolkitplus\2.3.1-1.5.6\artoolkitplus-2.3.1-1.5.6.jar referenced one or more files that do not exist: file:/D:/maven/repository/org/bytedeco/artoolkitplus/2.3.1-1.5.6/javacpp.jar
  The Class-Path manifest attribute in D:\maven\repository\org\bytedeco\flandmark\1.07-1.5.6\flandmark-1.07-1.5.6.jar referenced one or more files that do not exist: file:/D:/maven/repository/org/bytedeco/flandmark/1.07-1.5.6/javacpp.jar
  The Class-Path manifest attribute in D:\maven\repository\org\bytedeco\leptonica\1.81.1-1.5.6\leptonica-1.81.1-1.5.6.jar referenced one or more files that do not exist: file:/D:/maven/repository/org/bytedeco/leptonica/1.81.1-1.5.6/javacpp.jar
  The Class-Path manifest attribute in D:\maven\repository\org\bytedeco\tesseract\4.1.1-1.5.6\tesseract-4.1.1-1.5.6.jar referenced one or more files that do not exist: file:/D:/maven/repository/org/bytedeco/tesseract/4.1.1-1.5.6/javacpp.jar,
  The Class-Path manifest attribute in D:\maven\repository\org\bytedeco\ffmpeg\4.4-1.5.6\ffmpeg-4.4-1.5.6.jar referenced one or more files that do not exist: file:/D:/maven/repository/org/bytedeco/ffmpeg/4.4-1.5.6/javacpp.jar

但是解决了这个,依赖里一大堆的exclusion看起来特别丑。这个只能看各人取舍了。
最终依赖:

<dependency>
    <groupId>org.bytedeco</groupId>
    <artifactId>javacv</artifactId>
    <version>1.5.6</version>
    <exclusions>
        <exclusion>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-graphics</arti
        </exclusion>
        <exclusion>
            <groupId>org.bytedeco</groupId>
            <artifactId>javacpp</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.bytedeco</groupId>
            <artifactId>openblas</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.bytedeco</groupId>
            <artifactId>opencv</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.bytedeco</groupId>
            <artifactId>tesseract</artifactId
        </exclusion>
        <exclusion>
            <groupId>org.bytedeco</groupId>
            <artifactId>flycapture</artifactI
        </exclusion>
        <exclusion>
            <groupId>org.bytedeco</groupId>
            <artifactId>libdc1394</artifactId
        </exclusion>
        <exclusion>
            <groupId>org.bytedeco</groupId>
            <artifactId>libfreenect</artifact
        </exclusion>
        <exclusion>
            <groupId>org.bytedeco</groupId>
            <artifactId>libfreenect2</artifac
        </exclusion>
        <exclusion>
            <groupId>org.bytedeco</groupId>
            <artifactId>librealsense</artifac
        </exclusion>
        <exclusion>
            <groupId>org.bytedeco</groupId>
            <artifactId>librealsense2</artifa
        </exclusion>
        <exclusion>
            <groupId>org.bytedeco</groupId>
            <artifactId>videoinput</artifactI
        </exclusion>
        <exclusion>
            <groupId>org.bytedeco</groupId>
            <artifactId>artoolkitplus</artifa
        </exclusion>
        <exclusion>
            <groupId>org.bytedeco</groupId>
            <artifactId>flandmark</artifactId
        </exclusion>
        <exclusion>
            <groupId>org.bytedeco</groupId>
            <artifactId>leptonica</artifactId
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.bytedeco</groupId>
    <artifactId>javacpp</artifactId>
    <version>1.5.6</version>
</dependency>
<dependency>
    <groupId>org.bytedeco</groupId>
    <artifactId>ffmpeg</artifactId>
    <version>4.4-1.5.6</version>
    <classifier>windows-x86_64</classifier>
    <scope>provided</scope>
    <exclusions>
        <exclusion>
            <groupId>org.bytedeco</groupId>
            <artifactId>javacpp</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.bytedeco</groupId>
    <artifactId>ffmpeg</artifactId>
    <version>4.4-1.5.6</version>
    <classifier>linux-x86_64</classifier>
    <scope>runtime</scope>
    <exclusions>
        <exclusion>
            <groupId>org.bytedeco</groupId>
            <artifactId>javacpp</artifactId>
        </exclusion>
    </exclusions>
</dependency>

最终效果图
在这里插入图片描述
是不是很清爽
但是项目启动的时候还会出现一行空引用提示

The Class-Path manifest attribute in D:\maven\repository\org\bytedeco\javacv\1.5.6\javacv-1.5.6.jar referenced one or more files that do not exist: file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/javacpp-1.5.6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/openblas-0.3.17-1.5.6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/opencv-4.5.3-1.5.6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/ffmpeg-4.4-1.5.6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/flycapture-2.13.3.31-1.5.6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/libdc1394-2.2.6-1.5.6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/libfreenect-0.5.7-1.5.6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/libfreenect2-0.2.0-1.5.6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/librealsense-1.12.4-1.5.6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/librealsense2-2.44.0-1.5.6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/videoinput-0.200-1.5.6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/artoolkitplus-2.3.1-1.5.6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/flandmark-1.07-1.5.6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/leptonica-1.81.1-1.5.6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/tesseract-4.1.1-1.5.6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/android-4.1.1.4.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/gluegen-rt-main-2.3.2.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/gluegen-rt-2.3.2.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/gluegen-rt-2.3.2-natives-android-aarch64.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/gluegen-rt-2.3.2-natives-android-armv6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/gluegen-rt-2.3.2-natives-linux-amd64.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/gluegen-rt-2.3.2-natives-linux-armv6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/gluegen-rt-2.3.2-natives-linux-armv6hf.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/gluegen-rt-2.3.2-natives-linux-i586.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/gluegen-rt-2.3.2-natives-macosx-universal.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/gluegen-rt-2.3.2-natives-solaris-amd64.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/gluegen-rt-2.3.2-natives-solaris-i586.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/gluegen-rt-2.3.2-natives-windows-amd64.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/gluegen-rt-2.3.2-natives-windows-i586.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jogl-all-main-2.3.2.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jogl-all-2.3.2.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jogl-all-2.3.2-natives-android-aarch64.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jogl-all-2.3.2-natives-android-armv6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jogl-all-2.3.2-natives-linux-amd64.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jogl-all-2.3.2-natives-linux-armv6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jogl-all-2.3.2-natives-linux-armv6hf.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jogl-all-2.3.2-natives-linux-i586.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jogl-all-2.3.2-natives-macosx-universal.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jogl-all-2.3.2-natives-solaris-amd64.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jogl-all-2.3.2-natives-solaris-i586.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jogl-all-2.3.2-natives-windows-amd64.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jogl-all-2.3.2-natives-windows-i586.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jocl-main-2.3.2.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jocl-2.3.2.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jocl-2.3.2-natives-android-aarch64.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jocl-2.3.2-natives-android-armv6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jocl-2.3.2-natives-linux-amd64.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jocl-2.3.2-natives-linux-armv6.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jocl-2.3.2-natives-linux-armv6hf.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jocl-2.3.2-natives-linux-i586.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jocl-2.3.2-natives-macosx-universal.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jocl-2.3.2-natives-solaris-amd64.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jocl-2.3.2-natives-solaris-i586.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jocl-2.3.2-natives-windows-amd64.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/jocl-2.3.2-natives-windows-i586.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/javacpp.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/openblas.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/opencv.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/ffmpeg.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/flycapture.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/libdc1394.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/libfreenect.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/libfreenect2.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/librealsense.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/librealsense2.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/videoinput.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/artoolkitplus.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/flandmark.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/leptonica.jar,file:/D:/maven/repository/org/bytedeco/javacv/1.5.6/tesseract.jar

这个无法通过exclusion排除了,找到javacv-1.5.6.pom文件一顿操作没毛用。不知道它这个是在哪里引用的。只有一行,不那么碍眼了。目前只能先放着,等以后有空了再找找

  • 13
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值