Maven多模块微服务项目@SpringBootApplication注解找不到报错
解决方案
问题根因
@SpringBootApplication注解属于spring-boot-autoconfigure包,正常会随spring-boot-starter传递引入,你当前的配置存在两处冲突问题导致依赖无法正常加载:
- 子模块自定义了JDK编译版本为15,和父工程统一的JDK11配置冲突
- 父工程冗余声明了Spring Boot核心依赖的版本,和继承的
spring-boot-starter-parent默认依赖管理冲突
具体操作步骤
- 清理子模块冗余配置
删除子模块pom末尾的JDK版本配置块:
<properties> <maven.compiler.source>15</maven.compiler.source> <maven.compiler.target>15</maven.compiler.target> </properties>
子模块会自动继承父工程的JDK11编译配置,避免版本不兼容。
清理父工程冗余依赖声明
父工程已经继承了spring-boot-starter-parent,无需在dependencyManagement中重复声明spring-boot-starter、spring-boot-starter-test的版本,删除这两个依赖的<version>${spring-boot.version}</version>配置即可。刷新Maven依赖
修改完所有pom文件后,在IDE中执行Maven项目重载操作(IDEA可点击右侧Maven面板的刷新按钮,Eclipse可右键项目选择Maven->Update Project),如有需要可重启IDE清除缓存。修复本地依赖损坏
如果重载后仍无法识别注解,可删除本地Maven仓库中org/springframework/boot目录下的对应版本依赖,重新执行mvn clean install命令下载完整依赖。可选补充配置
如果以上操作都完成后仍有问题,可在子模块的dependencies中手动添加spring-boot-autoconfigure依赖,无需指定版本:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-autoconfigure</artifactId> </dependency>
内容的提问来源于stack exchange,提问作者Shruti sharma
相关产品推荐
相关产品推荐

