2017-08-31 56 views
1

我在使用IntelliJ IDE和maven。我有一個包含兩個子模塊的項目(主模塊),包含兩個子模塊,每個模塊都有自己的pom。如何在intellij子模塊中包含opencv(maven)

<!-- main pom module part --> 
<packaging>pom</packaging> 
<modules> 
    <module>ModuleA</module> 
    <module>ModuleB</module> 
</modules> 

<!-- example for sub module pom --> 
<parent> 
    <artifactId>main-module</artifactId> 
    <groupId>my.main.module</groupId> 
    <version>0.5.0</version> 
</parent> 

圖片ModuleA包括OpenCV的Java包裝和ModuleB是使用ModuleA一個可執行的Java程序(具有主類)。

的編譯工作正常,但是當我運行ModuleB與已經設置庫路徑在發射,我會爲ModuleA以下錯誤:

java.lang.NoClassDefFoundError: org/opencv/core/Core 

任何建議如何解決這一問題?

回答

0

好吧,我找到了解決辦法我自己。問題是,opencv java包裝包含在系統路徑中。現在,我使用驗證生命週期步驟中的maven install插件。

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-install-plugin</artifactId> 
      <version>2.5</version> 
      <executions> 
       <execution> 
        <phase>validate</phase> 
        <goals> 
         <goal>install-file</goal> 
        </goals> 
        <configuration> 
         <groupId>org.opencv</groupId> 
         <artifactId>opencv</artifactId> 
         <version>3.3.0</version> 
         <packaging>jar</packaging> 
         <file>${project.basedir}/../lib/opencv/opencv-330.jar</file> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 

工作正常,我,但我不希望它成爲的方式......系統路徑種類依賴性似乎是在Maven的馬車。

0

嘗試以下依賴添加到您的ModuleA:

<dependency> 
    <groupId>nu.pattern</groupId> 
    <artifactId>opencv</artifactId> 
    <version>2.4.9-7</version> 
</dependency> 
+0

問題不在於opencv的依賴關係,我已經擁有了這個功能,並且查看了本地存儲庫顯示,它在那裏都很好。我想如果它無法解決opencv的依賴關係,它會編譯。 – mroeder

相關問題