Eclipse Photon更新后Maven构建报错:org.slf4j签名信息不匹配
我之前也碰到过类似的坑,这个错误大多是Eclipse更新后,Maven相关的SLF4J依赖出现版本冲突或者签名不一致导致的,给你几个实测有效的解决办法:
清理Maven本地仓库的冲突依赖
找到本地Maven仓库里org.slf4j对应的目录,删掉所有SLF4J相关的文件夹(比如slf4j-api、slf4j-simple这类)。回到Eclipse里右键项目,选择Maven > Update Project,记得勾选Force Update of Snapshots/Releases,让Maven重新下载干净的依赖包。检查并调整Eclipse的Maven插件版本
打开Eclipse的Help > About Eclipse > Installation Details,找到Maven Integration for Eclipse相关组件。更新后插件版本可能和项目依赖的SLF4J不兼容,如果是这样,可以降级插件:在Installed Software里选中对应的Maven插件,点击Uninstall,然后重新安装适配Photon版本的Maven插件(比如M2E 1.9.x系列,和Photon兼容性不错)。在pom.xml中强制指定SLF4J统一版本
给项目的pom.xml加个依赖管理节点,强制使用兼容的SLF4J版本,示例代码如下:<dependencyManagement> <dependencies> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.25</version> <!-- 这个版本适配Photon的Maven插件表现稳定 --> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>1.7.25</version> </dependency> </dependencies> </dependencyManagement>之后执行
Maven > Clean和Maven > Install,重新构建项目。重置Eclipse的Maven配置缓存
先关掉Eclipse,找到工作目录下的.metadata/.plugins/org.eclipse.m2e.core文件夹,直接删掉它,再重启Eclipse。这个操作会重置Maven的本地配置,能解决不少缓存导致的签名冲突问题。
额外提示:如果上面的方法都没效果,可以试试新建一个Eclipse工作空间,重新导入项目配置Maven——有时候旧工作空间的深层缓存问题,只能靠这种方式彻底解决。
内容的提问来源于stack exchange,提问作者Shukant

