Maven依赖项上的NoClassDefFoundError存在于本地

时间:2017-06-13 05:45:00

标签: java eclipse maven intellij-idea pom.xml

我是Maven Project的新手。我正在对其中一个开源maven项目进行更改。我在向项目添加库时遇到了问题。到目前为止,我已经这样做了: -

  1. 我将一个名为jni4net.j-0.8.8.0.jar的库添加到项目的resources文件夹中。
  2. 我右键点击了jar(在Intellij中)并点击了“添加为库”#。
  3. 然后在pom.xml中我添加了: -

    <dependency>
        <groupId>jar.0.8.8.0.jni4net</groupId>
        <artifactId>jar.0.8.8.0.jni4net</artifactId>
        <version>0.8.8.0</version>
        <scope>system</scope>
        <systemPath>${basedir}/src/main/resources/jni4net.j-
         0.8.8.0.jar</systemPath>
    </dependency>
    
  4. 但是当我构建这个项目时(构建成功,测试用例正在运行)并使用它会抛出以下错误: -

    java.lang.NoClassDefFoundError: net/sf/jni4net/Bridge 
    

    请帮我解决。我是maven和pom的新手。我看过各种答案,但没有把它弄好。 PS - 我将groupId和artifactID命名为jar文件的反向

2 个答案:

答案 0 :(得分:1)

这不是添加该依赖项的正确方法。

您只需要:

<dependency>
    <groupId>net.sf.jni4net</groupId>
    <artifactId>jni4net.j</artifactId>
    <version>0.8.8.0</version>
</dependency>

在构建时,将从Maven Central检索依赖项。

强烈建议不要使用<systemPath>...</systemPath>,因为它通常会将您的项目与当地环境联系起来。

答案 1 :(得分:0)

由于maven central中可以使用jni4net.j依赖项,因此您无需手动下载和放置依赖项。 Maven将在“&#39; .m2&#39;”中本地下载和存储依赖项。夹。只需添加依赖项即可。

<dependency>
   <groupId>net.sf.jni4net</groupId>
   <artifactId>jni4net.j</artifactId>
   <version>0.8.8.0</version>
</dependency>