我将 IntelliJ IDE 与 maven 一起使用。我有一个带有父 pom 的项目(主模块),其中包括 2 个子模块,每个子模块都有自己的 pom。
<!-- 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>
Image ModuleA 包含 OpenCV Java 包装器,而 ModuleB 是使用 ModuleA 的可执行 java 程序(具有主类)。
编译工作正常,但是当我在启动器中设置库路径的情况下运行 ModuleB 时,我将收到 ModuleA 的以下错误:
java.lang.NoClassDefFoundError: org/opencv/core/Core
有什么解决办法吗?
最佳答案
好的,我自己找到了解决方案。问题是,opencv java 包装器包含在系统路径中。现在,我改为在验证实时周期步骤中使用 maven 安装插件。
<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 中似乎有问题。
关于java - 如何在 intellij 子模块中包含 opencv (maven),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45975216/