2016-11-14 145 views
0

我想運行一個使用OpenCV庫來渲染視頻的基本程序。我得到的主要問題之一是maven在嘗試加載依賴項(它使用的本地庫)時報告錯誤。我在這裏檢查的所有解決方案,GitHub和其他地方都沒有結果。未加載Maven的OpenCV本機庫

這是pom.xml中

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 

    <repositories> 
    <repository> 
     <id>javaopencvbook</id> 
     <url>https://raw.github.com/JavaOpenCVBook/code/maven2/</url> 
    </repository> 
    </repositories> 

    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.mycompany</groupId> 
    <artifactId>mavenproject1</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>jar</packaging> 
    <dependencies> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>4.10</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.javaopencvbook</groupId> 
      <artifactId>opencvjar</artifactId> 
      <version>3.0.0</version> 
     </dependency> 
     <dependency> 
      <groupId>org.javaopencvbook</groupId> 
      <artifactId>opencvjar-runtime</artifactId> 
      <version>3.0.0</version> 
      <classifier>natives-windows-x86_64</classifier> 
     </dependency> 
    </dependencies> 
    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <maven.compiler.source>1.7</maven.compiler.source> 
     <maven.compiler.target>1.7</maven.compiler.target> 
    </properties> 


    <build> 
    <plugins> 
    <plugin> 
     <artifactId>maven-jar-plugin</artifactId> 
     <version>2.4</version> 
     <configuration> 
     <archive> 
      <manifest> 
      <addClasspath>true</addClasspath> 
      <classpathPrefix>lib/</classpathPrefix> 
      <mainClass>com.mycompany.mavenproject1.App</mainClass> 
      </manifest> 
     </archive> 
     </configuration> 
    </plugin> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-dependency-plugin</artifactId> 
     <version>2.1</version> 
     <executions> 
     <execution> 
      <id>copy-dependencies</id> 
      <phase>package</phase> 
      <goals> 
      <goal>copy-dependencies</goal> 
      </goals> 
      <configuration> 
      <outputDirectory>${project.build.directory}/lib</outputDirectory> 
      <overWriteReleases>false</overWriteReleases> 
      <overWriteSnapshots>false</overWriteSnapshots> 
      <overWriteIfNewer>true</overWriteIfNewer> 
      </configuration> 
     </execution> 
     </executions> 
    </plugin> 
    <plugin> 
     <groupId>com.googlecode.mavennatives</groupId> 
     <artifactId>maven-nativedependencies-plugin</artifactId> 
     <version>0.0.7</version> 
     <executions> 
     <execution> 
      <id>unpacknatives</id> 
      <phase>generate-resources</phase> 
      <goals> 
      <goal>copy</goal> 
      </goals> 
     </execution> 
     </executions> 
    </plugin> 
    </plugins> 
</build> 

</project> 

這應該創建opencvjar-3.0.0.jar和opencvjar-運行時3.0.0本地人 - 窗口x86_64.jar

的系統路徑這個也需要設置。在%PATH%變量中,我添加了原生.jar的路徑。以我爲例,項目位於

d:\ AleksandarRakic \ Java項目\ mavenproject1

而本地庫是在

d:\ AleksandarRakic \ Java項目\ mavenproject1 \目標\當地人

我使用的NetBeans 8.2。當我清理&生成項目它顯示下面的錯誤/警告:

The POM for org.javaopencvbook:opencvjar-runtime:jar:natives-windows-x86_64:3.0.0 is missing, no dependency information available 

上述錯誤仍然存​​在,不管我用什麼版本的OpenCV。我也嘗試了3.1.0版本,但它也說核心jar丟失。

我失去了兩天試圖破解這個,任何幫助是值得歡迎的。

+0

你有兩個項目嗎?一個用於圖書館,另一個用於項目?您能否發佈完整的最後一行錯誤? – mebada

回答

0

問題出在maven和OpenCV版本。如果我設置OpenCV的版本3.0.0

的Maven不會加載當地人.dll和不會加載和核心的.jar如果我把版本3.1.0

我做了明顯的事情並取得一個沒有maven的空白項目,添加了正確的庫,它運行得很好