2017-02-19 51 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

相關問題