bytedeco opencv在gradle中無法使用的問題


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中加上對應的判斷即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM