首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Maven本地依赖项

Maven本地依赖项
EN

Stack Overflow用户
提问于 2014-04-29 13:18:18
回答 2查看 11.2K关注 0票数 5

我在src/libs下包含了一个jar。这是必要的,因为当我在目标服务器上运行我的应用程序时,它将无法下载外部依赖项。从命令行构建时,我收到以下错误: NoClassDefFoundError。我的pom中的依赖项:

代码语言:javascript
复制
<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>

我读过关于这是否正确的相互矛盾的帖子,我不知道该怎么做。

请求的命令行:

代码语言:javascript
复制
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

同样相关的,

代码语言:javascript
复制
[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

如果这实际上不是正确的方法,还有谁能建议如何做到这一点呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-29 13:34:36

尝试将lib目录指定为pom.xml中的存储库:

代码语言:javascript
复制
<repository>
    <id>project_lib</id>
    <name>Repository in project's lib dir</name>
    <layout>default</layout>
    <url>file:///${project.basedir}/lib</url>
</repository>

然后,在依赖关系中,我认为您不需要为该Jar添加<systemPath>

票数 7
EN

Stack Overflow用户

发布于 2014-04-29 13:26:28

在这种情况下,我通常会将JAR文件导入到本地存储库。您可以使用以下命令:

代码语言:javascript
复制
mvn install:install-file -Dfile=name-of-your-jar.jar -DgroupId=your-group-id -DartifactId=your-artifact-id -Dversion=your-version -Dpackaging=jar

因此,如果我们获取您放入的代码片段,命令将为:

代码语言:javascript
复制
mvn install:install-file -Dfile=commons-validator-1.4.0.jar -DgroupId=jFuzzyLogic_core -DartifactId=jFuzzyLogic_core -Dversion=2.0.7 -Dpackaging=jar

完成后,您可以在没有任何系统路径的情况下设置依赖项。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23356056

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档