JavaCV更新到1.5.x版本后的依赖问题说明以及如何精简依赖包大小

JavaCV模块依赖说明

1.5.x版本依赖及包路径说明

  1. 以ffmpeg举例,1.5.x开始包路径修改为:
    import org.bytedeco.ffmpeg.avcodec,
    import static org.bytedeco.ffmpeg.global.avcodec.*;,
    import static org.bytedeco.ffmpeg.global.avformat.*;

  2. 以opencv举例,1.5.x开始包路径修改为:import org.bytedeco.opencv.opencv_core;
    import org.bytedeco.opencv.global.opencv_imgcodecs;
    import org.bytedeco.opencv.global.opencv_imgproc;

  3. 以tesseract举例,1.5.x开始包路径修改为:org.bytedeco.tesseract

  4. 以videoinput举例,1.5.x开始包路径修改为:org.bytedeco.videoinput

1.5.x版本依赖配置

1.5.x版本的maven依赖配置

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

dependencies {
    compile group: 'org.bytedeco', name: 'javacv-platform', version: '1.5.4'
}

1.3.x和1.4.x版本的模块依赖

以ffmpeg举例,1.3.x和1.4.x版本(1.5.x之前版本)的包路径:
org.bytedeco.javacpp.avcodec.*;
org.bytedeco.javacpp.avformat.*;

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

dependencies {
    compile group: 'org.bytedeco', name: 'javacv-platform', version: '1.4.4'
}

如何精简JavaCV依赖项

例如下面这个配置,只需要基础javacv、javacpp和ffmpeg,就不会依赖其他不需要的包了。

<!--javacv基础包,包含javacv和javacpp,必须-->
<dependency>
      <groupId>org.bytedeco</groupId>
      <artifactId>javacv</artifactId>
      <version>1.5.4</version>
</dependency>
<!-- ffmpeg,可选 -->
<dependency>
      <groupId>org.bytedeco</groupId>
      <artifactId>ffmpeg-platform</artifactId>
      <version>4.3.1-1.5.4</version>
</dependency>

只需要opencv,可以这样配置:

<!--javacv基础包,包含javacv和javacpp,必须-->
<dependency>
      <groupId>org.bytedeco</groupId>
      <artifactId>javacv</artifactId>
      <version>1.5.4</version>
</dependency>
<!-- opencv,可选 -->
<dependency>
      <groupId>org.bytedeco</groupId>
      <artifactId>opencv-platform</artifactId>
      <version>4.4.0-1.5.4</version>
</dependency>

只引用javacv依赖,实际上包含javacv、javacpp和各个其他依赖库的封装层,不包含ffmpeg、opencv等系统环境的本地库(native library):

<dependency>
      <groupId>org.bytedeco</groupId>
      <artifactId>javacv</artifactId>
      <version>1.5.4</version>
</dependency>