背景:idea 升级了新版本2024后,运行项目突然报错了(在之前2022的版本上是可以正常启动的),刚开始怀疑代码问题,查了下git 提交记录,发现无人修改,然后排查是不是maven版本和idea不兼容,然后更换新的Maven版本3.6版本,然后还是报错,想了一下,还是求助一下吧,顺便学习学习解决问题。
查了一下:主要的原因是因为MapStruct 映射的问题,使用的是2024的版本出现了版本不兼容的问题,导致内部处理映射关系空指针异常,
查了一下项目依赖的pom版本
我的解决方案:升级这个依赖版本,我升级到1.3.1.Final,接着有换了1.4.1结果:换了另一个报错,lombok中的log又不兼容了,算了这个先放弃,寻找更简洁的解决方法:
然后看到了这样一段,发现我尝试的1.4.1.我可以试试在我的idea 2024中修改配置,这种不用改代码,也相对方便简洁一点,说干就干,
解决方案:
打开idea的File --> Setting --> Build,Execution,Deployment --> Compiler --> User-local build 加上参数:
-Djps.track.ap.dependencies=false
PS:知识点之一:MapStruct的作用
MapStruct是一个代码生成器,简化了不同的Java Bean之间映射的处理。 我们在写代码时经常涉及到VO、DTO、BO、DO之间实体的转换,有了mapStruct之后,可以让不同实体之间的转换变的简单。
MapStruct可以根据两个Java bean之间的字段名称和类型进行自动映射。它支持常见的映射场景,如相同字段名的映射、不同字段名的映射、嵌套对象的映射、集合的映射等。
使用MapStruct可以提高开发效率,减少手动编写映射代码的错误和繁琐。同时,它还提供了可扩展性,允许自定义映射逻辑和转换器,以满足不同的需求
成功启动,又学到一招。
总结:Learning is endless, is never too old to learn
活到老学到老,入一行就坚持到最后。