Vex*_*Vex 37 java noclassdeffounderror maven classnotfoundexception
我正在ClassNotFoundException和NoClassDefFoundError例外,当我尝试使用Maven的定义依赖于运行我的应用程序.
我pom.xml使用以下声明将我对相关jar的maven依赖项添加到我的文件中:
<dependency>
<groupId>spy</groupId>
<artifactId>spymemcached</artifactId>
<version>2.8.4</version>
<scope>provided</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)
这将相关的JAR文件添加到Eclipse中的Maven Dependencies文件夹中.我可以在代码中访问类,但是一旦运行应用程序,我就会得到提到的异常.
在Maven依赖项下的Java构建路径中引用了jar:

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

当我尝试运行该应用程序时,我得到以下两个例外:
java.lang.NoClassDefFoundError: Lnet/spy/memcached/MemcachedClient;
java.lang.ClassNotFoundException: net.spy.memcached.MemcachedClient
Run Code Online (Sandbox Code Playgroud)
谁能指出我正确的方向?
Jig*_*shi 35
更改provided到compile
提供
这很像compile,但表示您希望JDK或容器在运行时提供依赖性.例如,在为Java Enterprise Edition构建Web应用程序时,您可以将Servlet API和相关Java EE API的依赖关系设置为提供的范围,因为Web容器提供了这些类.此范围仅在编译和测试类路径中可用,并且不可传递.
Vik*_*dor 10
<scope>provided</scope>
Run Code Online (Sandbox Code Playgroud)
"提供"范围意味着依赖项应仅在编译阶段可用,并且它们将在运行时期间的其他位置可用,并且Maven不应将它们与当前应用程序的其余jar和类打包.
您的依赖关系似乎不属于"提供"范围.从依赖关系定义中删除该范围,并且jar将出现在打包的jar/war/ear中.
| 归档时间: |
|
| 查看次数: |
54875 次 |
| 最近记录: |