lombok使用常见问题及解决方法

介绍

Lombok是一个基于java的开发包,能通过注解的方式简化java代码,自动生成javabean的getter和setter方法、构造函数等,提高开发人员的开发效率。

idea配置lombok

在setting → Plugins中搜索Lombok关键字,找到Lombok插件并安装,安装成功后重启idea。
maven项目在pom.xml中添加依赖,非maven项目可以下载jar包并添加到Libraries中即可。

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.16.18</version>
    <scope>provided</scope>
</dependency>

使用lombok的Data注解定义一个javabean,变得简洁很多了。

import lombok.*;
import java.io.Serializable;
import java.util.*;

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class TemplateMessageDto implements Serializable
{
    /**
     * 模板
     *
     * @see WxTemplate
     */
    protected String template;

    /**
     * 接收消息的微信用户openId
     */
    protected String openId;

    /**
     * 消息打开的url
     */
    protected String url;

    @Builder.Default
    protected Map<String, String> data = new HashMap<>();
}

上面代码中使用了Builder注解,表示为javabean生成一个构造器。
可以像下面这样子使用

TemplateMessageDto message = TemplateMessageDto.builder().openId("").url("").template("").build();

提示There is no default constructor available in xxx

继承了使用lombok的data注解标识的javabean,在定义当前类的构造方法是提示There is no default constructor available in xxx。

public class WxTemplateMessage extends TemplateMessageDto
{
    public WxTemplateMessage()
    {
    }
}

在这里插入图片描述
添加NoArgsConstructor注解即可。

无法将类TemplateMessageDto中的构造器应用到给定类型

在这里插入图片描述
添加AllArgsConstructor注解就可以解决了。

idea下编译提示找不到符号

项目添加了lombok的依赖,编译时提示找不到符号。
在setting → Build,Execution,Deployment → Compiler → Annotation Processors中勾选上Enable annotation processing
在这里插入图片描述

Jenkins添加lombok依赖

项目通过Jenkins自动部署,项目中有依赖到lombok。需要在pom.xml中添加lombok依赖。否则会报error: cannot find symbol的错误。

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.16.18</version>
    <scope>provided</scope>
</dependency>

同时还需要在编译插件中添加AnnonationProcessor相关的配置

<build>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <annotationProcessors>
                    <annotationProcessor>lombok.launch.AnnotationProcessorHider$AnnotationProcessor
                    </annotationProcessor>
                </annotationProcessors>
            </configuration>
        </plugin>
    </plugins>
</build>
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,lombok是一个用于简化Java代码的工具库。它通过自动生成常见的Java代码,如getter和setter方法、构造函数等,来减少开发人员的工作量。然而,lombok的版本兼容性可能会导致一些问题。 在引用中,提到了lombok的版本兼容性问题。具体来说,当使用较新版本的lombok时,可能会与某些IDE或编译器不兼容,导致编译错误或无法正常工作。这是因为lombok使用了一些特殊的注解和编译时的代码转换技术,而不是传统的Java代码。 为了解决lombok版本兼容性问题,可以尝试以下方法: 1. 确保使用lombok版本与IDE或编译器兼容。可以查看lombok的官方文档或相关资源,了解哪些版本与你正在使用的IDE或编译器兼容。 2. 更新IDE或编译器的版本。有时,更新IDE或编译器的版本可以解决lombok的兼容性问题。确保使用最新的版本,并检查是否有任何与lombok相关的更新或修复。 3. 手动配置IDE或编译器。如果无法解决兼容性问题,可以尝试手动配置IDE或编译器以正确处理lombok的注解和代码转换。这可能涉及到在IDE或编译器中启用lombok插件或设置相关的编译选项。 总之,lombok的版本兼容性问题可能会导致编译错误或无法正常工作。为了解决这些问题,可以尝试使用兼容的lombok版本,更新IDE或编译器的版本,或手动配置IDE或编译器。请根据具体情况选择适合的解决方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值