本地执行maven工程报错: java.lang.NoClassDefFoundError

环境

IDEA Ultimate 2018.3
MAVEN 3.5.4

背景

在使用Maven工程的时候,IDEA环境下本地执行代码报错:

Exception in thread "pcMetricsThread" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
	at com.ucar.spacex.metrics.impl.MetricsSystemImpl.<clinit>(MetricsSystemImpl.java:35)
	at com.ucar.spacex.metrics.lib.DefaultMetricsSystem.<init>(DefaultMetricsSystem.java:23)
	at com.ucar.spacex.metrics.lib.DefaultMetricsSystem.<clinit>(DefaultMetricsSystem.java:21)
	at com.ucar.spacex.metrics.source.JvmMetrics$Singleton.init(JvmMetrics.java:33)
	at com.ucar.spacex.metrics.source.JvmMetrics.initSingleton(JvmMetrics.java:91)
	at com.ucar.spacex.metrics.CommonMetricsSystem.lambda$main$0(CommonMetricsSystem.java:16)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	... 7 more

分析

根据报错可知找不到类,但是我们的pom.xml文件明明配置了对应的jar包。

<dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-common</artifactId>
    <version>3.1.0</version>
    <scope>provided</scope>
</dependency>

根据maven的官方文档可知scope的范围为provided时,第三方jar包是会参与代码的编译,所以本地执行代码应该是可以找到对应的类的,所以问题肯定是出现在IDEA本身,发现应该在执行的时候选中下列的选项,再次执行成功。
在这里插入图片描述

参考链接

1、https://blog.csdn.net/lh11077/article/details/80143996

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值