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文件一顿操作没毛用。不知道它这个是在哪里引用的。只有一行,不那么碍眼了。目前只能先放着,等以后有空了再找找