@AllArgsConstructor等lombok注解不生效

Posted 玛丽莲茼蒿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了@AllArgsConstructor等lombok注解不生效相关的知识,希望对你有一定的参考价值。

一、问题

Java类用了@AllArgsConstructor的注解,但是在单元测试的时候依然提示只有无参的构造函数。

二、问题分析及解决

@AllArgsConstructor这个注解是lombok包里的。

这个包我们已经在pom.xml文件加入项目依赖了 ,通过侧边栏可以看出确实下载下来了,源码也可以点进去。

但是我们深入这个包看一下,发现lombok的依赖是空的。

PS写给我自己看的

因为项目里引入了spring-data-elasticsearch这个包,在深入这个包的时候,记得看到了有关lombok不能用的信息。

大概的意思是,我们在spring-data-elasticsearch中不再使用lombok了,但是仍然把lombok的版本写在父项目里(如下图)。只不过在spring-data-elasticsearch中将其版本写为999999,让maven强制在../src/test/resources/local-maven-repo/下生成一个lombok的空包。

不知道是否是这个原因导致了在test中无法使用lombok。

 

安装完成后,重启IDEA。问题解决!

 三、总结

看起来应该是随着版本的升级,lombok不再以依赖包的方式使用,而是改为以插件的方式使用了。

以上是关于@AllArgsConstructor等lombok注解不生效的主要内容,如果未能解决你的问题,请参考以下文章

Java Lombok:在@AllArgsConstructor 中省略一个字段?

Lombok常用注解(一)@Data @RequiredArgsConstructor @NoArgsConstructor @AllArgsConstructor

@NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor

lombok idea gradle @AllArgsConstructor(staticName = "of")找不到符号

IntelliJ IDEA lombok插件的安装和使用

最新版IDEA(或Android Studio)Lombok插件安装