一、问题现象
刚添加aop依赖运行后就报错:
[ERROR] 'dependencies.dependency.version' for
org.springframework.boot:spring-boot-starter-aop:jar is missing.
[ERROR] The build could not read 1 project -> [Help 1]
更关键的是,target/classes/ 目录下只有 application.yml 和 mapper 配置文件,一个 .class
文件都没有,说明代码压根没编译成功,自然也就“运行不起来”。
二、问题原因
这个错误的本质是:spring-boot-starter-aop 这个 starter 在 Spring Boot 4 里被改名了。
Spring Boot 4 将原来的 spring-boot-starter-aop 重命名为了 spring-boot-starter-aspectj。旧名字
spring-boot-starter-aop 在 4.x 版本只发布到 4.0.0-M2(里程碑版)就停更了,稳定版(如 4.1.1)的 spring-boot-starter-parent 中已经没有对它的版本管理。(如下)
Maven 在读取 POM 阶段就发现这个依赖既没有显式写
version,在父工程里也找不到对应版本,于是直接报错停下,后面所有代码都来不及执行。
▎ 顺便一提:Spring Boot 4 还重命名了一批 starter,比如 spring-boot-starter-web 改成了
▎ spring-boot-starter-webmvc,迁移时容易漏改。
额外配个小小bug
修正:泛型里的String改为LoginAndRegisterResponse