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()); 

 

posted on   陈惟鲜的博客  阅读(1629)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器

导航

< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8
点击右上角即可分享
微信分享提示