Spring Boot Maven项目报错:找不到getCardDescription()方法
Hey,我之前也踩过这个坑!在给Card类新增字段并同步关联类后,Maven构建报找不到getter方法的错,大概率是这几个地方出了问题,咱们逐一排查:
确认Card类的getter方法是否正确生成
先检查你在Card.java里新增变量后,有没有同步添加getCardDescription()方法。如果是手动新增的变量,别忘记手动编写或者用IDE自动生成getter(比如IntelliJ按Alt+Insert,Eclipse选Source->Generate Getters and Setters)。举个例子,如果你新增的变量是:private String cardDescription;对应的getter方法应该是:
public String getCardDescription() { return cardDescription; }彻底清理Maven缓存与构建产物
Maven有时候会缓存旧的编译结果,导致新添加的方法没被识别。试试执行更彻底的清理构建命令:mvn clean install -U这里的
-U参数会强制更新快照依赖,同时完全清理本地的target目录和缓存的类文件,避免旧文件干扰。检查关联类对Card类的引用是否正确
确认你修改的Card类是不是关联类正在引用的那个!比如有没有多个同名的Card类在不同包下?关联类里的import语句是不是指向了正确的com.xxx.Card?如果关联类引用的是旧包下的Card类,那肯定找不到你新添加的方法。确保IDE自动编译已开启(如果用IDE开发)
有时候IDE的自动编译没打开,导致本地修改的代码没被编译成class文件,Maven构建时用的还是旧的class文件。比如在IntelliJ里,要确保Settings -> Build, Execution, Deployment -> Compiler下的Build project automatically是勾选状态,然后手动执行Build -> Rebuild Project,之后再跑Maven命令试试。检查Maven编译插件配置
看看pom.xml里的maven-compiler-plugin有没有配置问题,比如指定的JDK版本和你的代码兼容吗?有没有用<excludes>排除了Card.java?正常的compiler插件配置大概是这样的:<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin>
内容的提问来源于stack exchange,提问作者William Makaina Bigno III

