Lombok不生成getter / setter(使用Luna或命令行编译)

时间:2014-09-18 03:02:13

标签: java eclipse maven lombok

我第一次尝试lombok。我试图尽可能地遵循指示,但是当我查看我编译的类(使用反编译器)时,他们没有任何生成的getter或setter。

我的安装步骤:

  1. 下载lombok 1.14.8并运行java -jar lombok.jar。它添加了lombok到eclipse。重启Eclipse( - 清理工作区)。如果我查看我的About Eclipse页面,我会看到:

    " Lombok v1.14.8" Branching Cobra"已安装。 http://projectlombok.org/"

  2. 将lombok添加到我的pom.xml:

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <scope>provided</scope>
        <version>1.14.8</version>
    </dependency>
    
  3. Maven-&gt;更新项目。项目 - &GT;清洁

  4. My Lombok&#39; ed java class:

    import lombok.Getter;
    import lombok.Setter;
    
    public class User extends BaseCouchDbDocument {
    
        public User() {
            // TODO Auto-generated constructor stub
        }
    
        @Getter @Setter
        private String name;
    }
    

    在Eclipse中使用代码完成时,我会看到User.getName()User.setName()。但是,如果我尝试使用getter或setter,我会收到编译时错误,表明不存在这样的方法。当我查看生成的.class文件时,我只看到以下内容:

    public class User extends BaseCouchDbDocument
    {
      private String name;
    }
    

    同样,如果我从命令行运行mvn compile,我会获得相同的类输出。

    我发现奇怪的是删除了@Getter@Setter注释,这意味着我的文件上发生了一些处理。但是没有生成getter / setter。

    我做错了吗?我在Mac上使用Java 7。

1 个答案:

答案 0 :(得分:4)

发布此消息后,我遇到了一个错误报告,表明它与AspectJ存在问题。

事实上,我正在将AspectJ与我的项目一起使用,并且它与Lombok发生冲突。删除AspectJ现在显示正确生成的setter / getters。

这显然没有&#34;解决&#34;这个问题,但至少指出了我正确的方向。我created another issue here来跟踪此特定问题。

希望这也可以帮助其他人。