2017-02-19 111 views
0

我正在使用opencv进行项目工作。我已成功为macOS平台创建所需的jar和本机库。我现在想在我的Java项目中使用它。我正在使用gradle进行构建和依赖管理。我在我的项目的lib文件夹中添加了jar和本机依赖项。如何使用gradle将本地依赖添加到java项目中

的build.gradle

group 'com.udaykale' 
version '1.0-SNAPSHOT' 

apply plugin: 'java' 

sourceCompatibility = 1.8 

repositories { 
    mavenCentral() 
} 

dependencies { 
    compile(
      files('lib/opencv-320.jar') 
    ) 
    testCompile group: 'junit', name: 'junit', version: '4.11' 
} 

System.setProperty("java.library.path", "lib") 

我收到以下错误:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no opencv_java320 in java.library.path 
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867) 
    at java.lang.Runtime.loadLibrary0(Runtime.java:870) 
    at java.lang.System.loadLibrary(System.java:1122) 
    at com.udaykale.imageeditor.Main.<clinit>(Main.java:13) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:264) 

我明白,我的机库是在运行时不可见。我如何改变我的gradle配置来处理这个?

回答

0

使用maven本地安装opencv-320.jar文件,并将其用作build.gradle中的依赖项。以本地方式安装使用artifact的以下命令。相应地指定版本,组标识和工件标识。

mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> 
-DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=jar 

而且添加本地仓库来的build.gradle

repositories { 
mavenLocal() 
} 

再依赖

dependencies { 
compile "<group-id>:<artifact-id>:<version>" 
} 
+0

还是同样的错误。它无法找到本地依赖项。 – uday

+0

它编译正确吗?而且,你有没有在你的库中使用特定于操作系统的代码?如果是的话,你的代码是依赖于平台的 –

+0

这种替代解决方案与从本地文件中拉出,除了使用'mavenLocal()' – chenrui

相关问题