Maven项目引用自定义Log4j日志库报Configurator类未找到如何解决?
解决方案
该报错属于典型的Maven依赖传递缺失问题,可通过以下两种方式解决,按需选择即可:
方案1:调整自定义日志库的依赖配置(推荐,一劳永逸)
- 打开自定义日志库的
pom.xml文件,检查所有Apache Log4j相关依赖的<scope>配置:不要设置为provided或test,这两种scope的依赖不会传递给上层引用项目。 - 所有Log4j相关依赖保持默认的
compilescope(不写<scope>标签默认就是该值)即可,如果自定义库还依赖了Log4j的扩展组件(如log4j-slf4j-impl、log4j-jul等),也统一按该规则配置。 - 调整完成后重新打包自定义日志库并发布到对应Maven仓库,上层引用项目更新自定义日志库的版本后,Maven会自动拉取关联的Log4j依赖,无需上层项目额外配置。
方案2:上层报错项目手动补全依赖(临时应急)
如果暂时无法修改自定义日志库的配置,可直接在报错的Maven项目pom.xml中手动添加对应版本的Log4j核心依赖即可:
<!-- 版本需要和你自定义日志库使用的Log4j版本完全一致,避免版本冲突 --> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>你的自定义库使用的Log4j版本号</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>你的自定义库使用的Log4j版本号</version> </dependency>
验证方式
依赖配置调整完成后,在报错项目根目录执行mvn dependency:tree命令,检查输出中是否存在对应版本的log4j-api、log4j-core依赖,确认存在后重新启动项目即可解决该报错。
内容的提问来源于stack exchange,提问作者Mani
相关产品推荐
相关产品推荐

