Spring Boot 1.4.7集成micrometer-spring-legacy出现ClassNotFound报错
Spring Boot 1.4.7 集成micrometer-spring-legacy启动ClassNotFound问题解决方案
核心诱因
该报错90%以上由依赖版本不匹配导致:micrometer 1.4.0及以上版本不再支持Spring Boot 1.4.x系列,仅1.3.x及更早版本适配Spring Boot 1.4.x,若引入了过高版本的micrometer-spring-legacy就会出现类缺失问题。
修复步骤
- 第一步:统一锁定依赖版本
在pom.xml的dependencyManagement节点引入micrometer legacy的bom,统一管控所有micrometer相关依赖的版本,避免版本冲突:
<dependencyManagement> <dependencies> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-spring-legacy-bom</artifactId> <version>1.3.20</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
- 第二步:添加完整的依赖声明
不要仅单独引入micrometer-spring-legacy,补充Prometheus注册器及Actuator依赖:
<dependencies> <!-- Spring Boot 1.x适配micrometer核心 --> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-spring-legacy</artifactId> </dependency> <!-- Prometheus指标输出依赖 --> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-prometheus</artifactId> </dependency> <!-- Spring Boot 指标端点基础依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> </dependencies>
- 第三步:排查剩余冲突
如果依然有ClassNotFound报错,先执行mvn dependency:tree命令查看所有micrometer相关依赖的版本,确认是否有其他依赖将micrometer版本拉高到1.4.x及以上,如有通过exclusion标签排除冲突版本即可。 - 第四步:生效验证
清空本地Maven仓库中io/micrometer目录下的文件,重新执行mvn clean package打包启动即可。
内容的提问来源于stack exchange,提问作者Luke Mao
相关产品推荐
相关产品推荐

