美文网首页程序员程序园
Eclipse - 安装lombok后注解无效

Eclipse - 安装lombok后注解无效

作者: 编程小世界 | 来源:发表于2019-05-03 19:52 被阅读6次

    安装 lombok

    lombok 的安装过程挺简单的,网上已经有很多相关的博客,这里就不在多说了,可以参考这篇:eclipse集成lombok注解不起作用

    但是我按照网上的方式安装之后,注解一直不起作用,运行的时候一直报找不到getter,setter方法。期间我以为是自己安装的不对,反反复复安装了几次还是不行,找了很多博客看,发现其实安装的方法都是一样的,在排除了有可能是jar包的版本与Eclipse的版本不兼容的问题后,我想可能问题不在这里,lombok我应该是已经安装成功了的,但是为什么不起作用呢?

    其实这里面有个坑,博客里面都有说,在安装好lombok后,需要重新启动Eclipse,重新编译 项目。注解不起作用的关键就在于你是如何编译项目的。

    编译项目

    我们一般编译项目的方式可能是选中项目然后点projecg -> clean

    但是这种编译项目的方式是不行的,我们把编译后生成的.class文件反编译一下看看。

    这是文件源码:

    importlombok.AllArgsConstructor;importlombok.Getter;@Getter@AllArgsConstructorpublicenumResponseCode{SUCCESS(10001,"请求成功"),    ERROR(10000,"请求失败"),    ILLEGAL_ARGUMENTS(1,"请求参数不合法")    ;privatefinalInteger code;privatefinalString desc;  }

    class 文件反编译后是这个样子

    publicenumResponseCode{SUCCESS(Integer.valueOf(10001),"请求成功"),  ERROR(Integer.valueOf(10000),"请求失败"),  ILLEGAL_ARGUMENTS(Integer.valueOf(1),"请求参数不合法");privatefinalInteger code;privatefinalString desc;}

    我们可以看到,反编译后的文件里面并没有生成getter ,setter方法还有构造方法

    我们用另外一种方式来编译项目看看,即用maven的编译插件来编译项目,使用命令 clean compile

    再来看看,class文件是这样的

    packagecom.beautifulsoup.chengfeng.enums;publicenumResponseCode{  SUCCESS(Integer.valueOf(10001),"请求成功"),  ERROR(Integer.valueOf(10000),"请求失败"),  ILLEGAL_ARGUMENTS(Integer.valueOf(1),"请求参数不合法");privatefinalInteger code;privatefinalString desc;privateResponseCode(Integer code, String desc){this.code = code;this.desc = desc;  }publicIntegergetCode(){returnthis.code; }publicStringgetDesc(){returnthis.desc; }}

    可以看到我们需要的方法都生成了!

    编译时如果报如下的错误:

    [ERROR] COMPILATION ERROR : [INFO] -------------------------------------------------------------[ERROR] No compilerisprovidedinthisenvironment. Perhaps you are runningona JRE rather than a JDK?[INFO]1error[INFO] -------------------------------------------------------------[INFO] ------------------------------------------------------------------------[INFO] BUILD FAILURE[INFO] ------------------------------------------------------------------------[INFO] Total time:1.436s[INFO] Finished at:2017-06-28T11:16:07+08:00[INFO] Final Memory:10M/151M[INFO] ------------------------------------------------------------------------[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile)onproject manage: Compilation failure[ERROR] No compilerisprovidedinthisenvironment. Perhaps you are runningona JRE rather than a JDK?[ERROR] -> [Help1]

    可以用如下的博客解决,亲测可用!

    关于Maven项目build时出现No compiler is provided in this environment的处理

    其它

    建议把Eclipse的自动编译关掉,因为我们在修改一个带有lomok注解类并ctrl + s 以后是Eclipse的方式编译的,这里个生成的class文件里面又没有我们要的方法了。

    另外如果你修改一个带有lomok注解的类并保存了,用mevaen编译以后显示有红叉,只要update 一下项目就好了。

    进群:697699179可以获取Java各类入门学习资料!

    这是我的微信公众号【编程study】各位大佬有空可以关注下,每天更新Java学习方法,感谢!

    学习中遇到问题有不明白的地方,推荐加小编Java学习群:697699179内有视频教程 ,直播课程 ,等学习资料,期待你的加入

    相关文章

      网友评论

        本文标题:Eclipse - 安装lombok后注解无效

        本文链接:https://www.haomeiwen.com/subject/zlvznqtx.html