代码编织梦想

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

在应用开发中碰到一个这样的问题,当前应用中存在Lombok,并且能正常使用。但是当我们在应用中引入MapStruct之后,Lombok不生效了,这个问题如何解决呢?


一、情况一

Lombok 1.18.16 版本以下时,需要加上lombok-mapstruct-binding:

<build>
        <plugins>
            <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>
                    <annotationProcessorPaths>
                        <path>
                            <groupId>org.mapstruct</groupId>
                            <artifactId>mapstruct-processor</artifactId>
                            <version>${org.mapstruct.version}</version>
                        </path>
                        <path>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                            <version>1.18.14</version>
                        </path>
                        <!-- This is needed when using below Lombok 1.18.16 -->
                        <path>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok-mapstruct-binding</artifactId>
                            <version>0.2.0</version>
                        </path>
                    </annotationProcessorPaths>
                </configuration>
            </plugin>
        </plugins>
    </build>

二、情况二

Lombok 1.18.16 版本以上时,不需要lombok-mapstruct-binding:

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.6.0</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>utf-8</encoding>
                    <annotationProcessorPaths>
                        <path>
                            <groupId>org.mapstruct</groupId>
                            <artifactId>mapstruct-processor</artifactId>
                            <version>${org.mapstruct.version}</version>
                        </path>
                        <path>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                            <version>1.18.20</version>
                        </path>
                    </annotationProcessorPaths>
                </configuration>
            </plugin>


总结

以上就是当我们在应用中引入MapStruct之后,Lombok不生效了的问题解决方法。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/yuanmintao/article/details/134539982

使用lombok 插件后,mapstruct 不生效-爱代码爱编程

背景: springboot 项目使用 lombok 插件后,添加 mapstruct  插件,maven 编译时 mapstruct 插件不起作用。   目前先匆匆记录一下一种解决方案 一种解决方案: pom 文件中加入以下依赖。笔者使用的 mapstruct 版本为 1.3.0.Final <!-- 解决lombok插件和 map

mapstruct引入不生效:解决mapstruct与lombok二者版本冲突问题-爱代码爱编程

问题: 引入了mapstruct的依赖,但是转换器的实现类中,并没有该实体的get/set方法进行属性赋值。 解决: 版本问题,mapstruct、lombok、maven的版本不对劲。 mapstruct 使用1.2.0 lombok使用1.16.22 是可行的。 或者在pom文件中加入这样一段: 升高maven-compiler-p

mapstruct工作使用时遇到问题-爱代码爱编程

void fundApplicationFormEntityToConvertAcceptMaterial(FundApplicationFormEntity fundApplicationFormEntity, @MappingTarget AcceptMaterialVo acceptMaterialVo); void fund

对象拷贝初识mapstruct及与lombok的配置-爱代码爱编程

        项目中用到对象拷贝,做一个修改历史记录保存的功能,使用Spring AOP自定义注解实现修改记录的保存,历史记录表和业务表的字段差不多,保存的时候需要用到对象拷贝。下面是一些对象拷贝的工具,前3个都用过,这次想尝试一下新的mapstruct,喜新厌旧一波。 1. 对象拷贝常见的工具类 1.1 Apache 的BeanUtils的copy

如何解决mapstruct和lombok冲突问题_lombok mapstruct 冲突-爱代码爱编程

一、冲突如何产生 在按照官网配置mapstruct,使用lombok。当我们在maven install时候会出现属性找不到错误。 二、解决配置如下 确保 Lombok 最低版本为 1.18.16annotationProcessorPaths 中,要配置lombok <build> <plugins>

lombok和mapstruct整合_mapstruct lombok-爱代码爱编程

先上操作流程 1、安装Lombok插件,(2020.0.4之后版本的IDEA已内置Lombok,老版本的请自行下载插件) 2、打开setting -> enable annotation processor (启用注解处理器) OK 完事~ 可以使用了 送上常用四件套 @Data

02-爱代码爱编程

1. 背景 众所周知,Lombok可以帮助我们为JavaBean,在编译期生成:构造方法、Getter、Setter、ToString等等方法。 程序员往往都是懒惰的,因此,为了提升开发效率,Lombok得到了广泛的应用。 MapStruct框架的实现原理跟Lombok类似,也是在编译期生成类的转换代码。默认情况下,类的转换代码会调用JavaBean

spring mvc 的controller方法返回值-爱代码爱编程

controller方法返回值 返回ModelAndView 说明:controller方法中定义ModelAndView对象并返回,对象中可添加model数据、指定view 返回字符串 逻辑视图名 说明:controller方法返回字符串可以指定逻辑视图名,通过视图解析器解析为物理视图地址。 返回字符串 @Controller @Req

java实现cr-爱代码爱编程

一.什么是OCR OCR (Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程 方案说明百度OCR收费Tesseract-OCRGoogle维护的开源OCR引擎,支持Java,Python等语言调

go语言开发ide介绍-爱代码爱编程

Go语言开发的集成开发环境(IDE)主要包括以下几种: Goland - 由 JetBrains 公司专门为 Go 语言开发而设计的专业 IDE,提供智能代码补全、深入代码分析、高级调试工具、强大的导航与搜索功能以及与版