解决java.lang.NoClassDefFoundError:lombok/Data报错问题
作者:Dubbo-罗
在Java开发中,使用Lombok库简化代码非常普遍,今天在启动拉取的git代码时,遇到了java.lang.NoClassDefFoundError:lombok/Data的报错,经过检查,发现错误的原因是将Date误写为Data,且错误地引用了lombok.Data包
java.lang.NoClassDefFoundError:lombok/Data报错
今天拉取一个git代码,启动后报错:
java.lang.NoClassDefFoundError: lombok/Data
检查以后发现
是因为属性上使用了Data,引用的是lombok.Data的包造成的。
可以看到这个类中有一个好几个Data。这里就很严重了,造成这个问题的原因是把Date写成了Data了。所以会报错lombok/Data问题。
要全局检查这样属性写成Data,然后引用的是lombok.Data的包,这种地方。
package com.ly.frauddataplatform.model.qo; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * @Description: 用户画像-模板列表请求参数类 * @Version: V1.0 */ @ApiModel @Data public class RcPortraitTemplateQO extends PageQO{ @ApiModelProperty(name = "id", value = "主键", example = "1") private Long id; /** * 模板名称 **/ @ApiModelProperty(name = "templateName",value = "模板名称",example = "xxx模板") private String templateName; /** * 模板内容 **/ @ApiModelProperty(name = "templateContent",value = "模板内容",example = "xxxjson字符串") private String templateContent; /** * 备注 **/ @ApiModelProperty(name = "remark",value = "备注",example = "适用于那个项目") private String remark; /** * 创建时间 **/ @ApiModelProperty(name = "createTime",value = "创建时间",example = "2024-02-23 00:00:00") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Data createTime; /** * 修改时间 **/ @ApiModelProperty(name = "updateTime",value = "修改时间",example = "2024-02-23 00:00:00") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Data updateTime; /** * 操作人 **/ @ApiModelProperty(name = "operator",value = "操作人",example = "罗焱-1211535") private String operator; }
错误的代码
可以看到这里引用的是lombok的包。类的属性类型却也使用了Data,应该使用的是Date
package com.ly.frauddataplatform.model.qo; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * 创建时间 **/ @ApiModelProperty(name = "createTime",value = "创建时间",example = "2024-02-23 00:00:00") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Data createTime; /** * 修改时间 **/ @ApiModelProperty(name = "updateTime",value = "修改时间",example = "2024-02-23 00:00:00") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Data updateTime;
正确的代码
修改以后
package com.ly.frauddataplatform.model.qo; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; /** * 创建时间 **/ @ApiModelProperty(name = "createTime",value = "创建时间",example = "2024-02-23 00:00:00") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date createTime; /** * 修改时间 **/ @ApiModelProperty(name = "updateTime",value = "修改时间",example = "2024-02-23 00:00:00") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date updateTime;
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。