eclipse 使用 mapstruct 报错NoClassDefFoundError 解决
mapstruct 用于bean复制,在编译时,将需复制的bean通过生成代码的形式进行复制。解决多层的类的问题。
<dependency> <groupId>org.mapstruct</groupId> <artifactId>mapstruct</artifactId> <version>1.5.0.Final</version> </dependency> <dependency> <groupId>org.mapstruct</groupId> <artifactId>mapstruct-processor</artifactId> <version>1.5.0.Final</version> </dependency>
这是由于编辑eclipse需安装插件所致。如果不安装插件,那么运行时,会提示。
org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: Could not initialize class ***.IncIndicatorContentMapper
解决问题:
window-eclipse marketplace 搜索m2e-apt。install
安装后,需重启eclipse。然后配置maven
window---preferences 搜索maven ,在annotation processing
选择如下图
然后点击同意并关闭,系统会自动编译eclipse中的maven工程,只要使用了该包功能的,那么会自动在编译类*/target/**classes/***下生成相应的实现类。
定义复制类
TestMapper.java
/** * @author uto */ @Mapper public interface TestMapper { TestMapper INSTANCE = Mappers.getMapper(TestMapper .class); com..biz.entity.AfficheListBizRes copyAfficheListBizRes(com.message.entity.AfficheListBizRes source); }
编译后:自动产生一个接口实现类。
调用使用
com..biz.entity.AfficheListBizRes responseBean = IncIndicatorContentMapper.INSTANCE.copyAfficheListBizRes(baseResponse.getData());
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器