具有maven依赖性的Java

具有maven依赖性的Java

本文介绍了具有maven依赖性的Java ClassNotFoundException的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我尝试使用maven定义的依赖项运行我的应用程序时,我收到 ClassNotFoundException NoClassDefFoundError 异常。

I am getting ClassNotFoundException and NoClassDefFoundError exceptions when I attempt to run my application using a maven defined dependency.

我使用以下声明将我对相关jar的maven依赖项添加到我的 pom.xml 文件中:

I added my maven dependency for the jar in question to my pom.xml file with the following declaration:

<dependency>
    <groupId>spy</groupId>
    <artifactId>spymemcached</artifactId>
    <version>2.8.4</version>
    <scope>provided</scope>
</dependency>

这将相关的JAR文件添加到Eclipse中的Maven Dependencies文件夹中。我可以在代码中访问类,但是一旦运行应用程序,我就会得到提到的异常。

This added the relevant JAR file to my Maven Dependencies folder in Eclipse. I can access the classes in code but I get the mentioned exceptions once I run the application.

在Maven依赖项下的Java构建路径中引用了jar:

The jar is referenced in my Java build path under Maven dependencies:

我的本​​地maven存储库已添加到我的类路径中:

My local maven repository is added to my classpath:

当我尝试运行该应用程序时,我得到以下两个例外:

When I attempt to run the application, I get the following two exceptions:

java.lang.NoClassDefFoundError: Lnet/spy/memcached/MemcachedClient;

java.lang.ClassNotFoundException: net.spy.memcached.MemcachedClient

任何人都可以指出我正确的方向吗?

Can anyone point me in the right direction?

推荐答案

提供更改为编译

已提供

这与编译很相似,但表示您希望JDK或容器在运行时提供依赖关系。例如,在为Java Enterprise Edition构建Web应用程序时,您可以将Servlet API和相关Java EE API的依赖性设置为提供的范围,因为Web容器提供了这些类。此范围仅在编译和测试类路径中可用,并且不可传递。

这篇关于具有maven依赖性的Java ClassNotFoundException的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-20 14:25