bytedeco opencv在gradle中无法使用的问题

本文详细介绍了如何在使用Gradle构建工具的项目中正确配置bytedecoopencv依赖,解决了因默认依赖解析规则导致的找不到对应平台编译依赖的问题,并提供了手动引入编译依赖及排除默认依赖解析的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

bytedeco opencv是一个opencv的封装,所有依赖都可以在maven中央库中找到,是一个非常方便的东西。

如果你是用构建工具,那么只需要引入

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

就应该可以正常使用。

因为opencv对于不同平台需要不同平台对应的编译,所以构建项目的时候会去下载对应的编译依赖,如果你使用gradle就会遇到这种问题

Could not resolve all dependencies for configuration ':compileClasspath'.
> Could not find javacpp-presets-Windows 8.1-amd64.jar (org.bytedeco:javacpp-presets:1.2).
  Searched in the following locations:
      https://repo1.maven.org/maven2/org/bytedeco/javacpp-presets/1.2/javacpp-presets-1.2-Windows 8.1-amd64.jar

去仓库看看,的确没有这个文件。但是这种方式在maven中工作。

那是因为默认的解析规则是javacpp-presets-${os.name}-${os.arch}.jar,而maven和gradle中的解析有一些不同之处,所以最简单的处理办法是自己手动引入对应的编译依赖

compile group: 'org.bytedeco.javacpp-presets', name: 'opencv', version: '3.1.0-1.2'
compile group: 'org.bytedeco.javacpp-presets', name: 'opencv', version: '3.1.0-1.2', classifier:'windows-x86_64'

然后去掉默认的依赖解析

configurations {
    all*.exclude group: 'org.bytedeco', module: 'javacpp-presets'
}

如果不想硬编码classifier,可以在gradle中加上对应的判断即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微笑点燃希望

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值