启动Spring/Vaadin项目时出现NoClassDefFoundError错误如何解决?
报错原因分析
这个异常是Spring Boot核心依赖缺失导致的,org.apache.commons.logging.LogFactory是Spring Boot日志系统的依赖类,找不到该类的常见原因如下:
- Maven本地仓库依赖损坏:首次拉取项目依赖时出现网络中断、资源超时等问题,导致commons-logging包下载不完整,无法正常加载类文件
- 依赖排除冲突:本地Maven全局配置、项目父POM中存在commons-logging的排除规则,导致该包没有被引入到项目依赖树中
- mvnw wrapper缓存异常:项目内置的mvnw工具缓存损坏,没有正确识别项目的依赖配置
解决方案
按以下顺序操作即可解决:
清理损坏依赖强制重新拉取
在项目根目录执行命令:mvnw clean dependency:purge-local-repository
执行完成后再尝试启动项目,大部分情况该操作即可解决问题。手动引入缺失依赖
如果第一步操作后仍然报错,可在项目pom.xml的节点中手动添加commons-logging依赖:
<dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.2</version> </dependency>
添加后执行mvnw clean install再启动项目即可。
- 排查排除规则
如果上述操作都无效,检查本地Maven的settings.xml配置、项目父POM文件中是否存在对commons-logging的全局排除配置,删除对应排除项即可。
你提供的启动类代码没有语法错误,无需修改启动类内容。
内容的提问来源于stack exchange,提问作者Dunmol
相关产品推荐
相关产品推荐

