我在 src/libs 下有一个 jar。这是必要的,因为当我在目标服务器上运行我的应用程序时,它将无法下载外部依赖项。从命令行构建时收到以下错误:NoClassDefFoundError。我的 pom 中的依赖项:
<dependency>
<groupId>jFuzzyLogic_core</groupId>
<artifactId>jFuzzyLogic_core</artifactId>
<scope>system</scope>
<version>2.0.7</version>
<systemPath>${basedir}\src\libs\jFuzzyLogic_core.jar</systemPath>
</dependency>
我已经阅读了关于这是否正确的相互矛盾的帖子,但我不知道该怎么做。
请求的命令行:
Exception in thread "main" java.lang.NoClassDefFoundError: net/sourceforge/jFuzz
yLogic/FIS
at noobbot.Main.<init>(Main.java:41)
at noobbot.Main.main(Main.java:30)
Caused by: java.lang.ClassNotFoundException: net.sourceforge.jFuzzyLogic.FIS
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 2 more
也有关系,
[WARNING] 'dependencies.dependency.systemPath' for jFuzzyLogic_core:jFuzzyLogic_
core:jar should not point at files within the project directory, ${basedir}\src\
libs\jFuzzyLogic_core.jar will be unresolvable by dependent projects @ line 24,
column 22
如果这实际上不是正确的方法,还有其他人可以建议如何执行此操作吗?
最佳答案
尝试将您的 lib 目录指定为您的 pom.xml
中的存储库:
<repository>
<id>project_lib</id>
<name>Repository in project's lib dir</name>
<layout>default</layout>
<url>file:///${project.basedir}/lib</url>
</repository>
那么在依赖关系中,我认为您不需要添加 <systemPath>
对于那个 Jar。
关于java - Maven 本地依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23356056/