Java IntelliJ 14+;Lombok插件+@生成器=错误

Java IntelliJ 14+;Lombok插件+@生成器=错误,java,intellij-idea,lombok,Java,Intellij Idea,Lombok,我的IntelliJ 14和Lombok注释“@Builder”有问题。 我有一些课程: @Getter @Builder public class TransactionFilter { private String name; private ProductType product; ... public static TransactionFilterBuilder defaultBuilder() { Transacti

我的IntelliJ 14和Lombok注释“@Builder”有问题。

我有一些课程:

@Getter
@Builder
public class TransactionFilter {
      private String name;
      private ProductType product;
      ...

      public static TransactionFilterBuilder defaultBuilder() {
         TransactionFilterBuilder builder = builder();
         builder.product(ProductType.DEFAULT);
         return builder;
      }
}
我试图在另一个类中使用its生成的生成器:

import org.---.TransactionFilter.TransactionFilterBuilder;

public class Foo {
   public void boo() {
      TransactionFilterBuilder filterBuilder;
      ...
   }
}
这两门课我都有一些错误 使用Java 1.6编译时,我遇到了错误:

TransactionFilter java:26: cannot find symbol symbol : class TransactionFilterBuilder location: class org.---.TransactionFilterBuilder TransactionFilter java:26:找不到符号 符号:类TransactionFilterBuilder 位置:类组织。--.TransactionFilterBuilder 我的工具提示还说,第26行中有不兼容的类型:
必需:组织。--.TransactionFilter.TransactionFilterBuilder
找到:org.-.TransactionFilter.TransactionFilterBuilder
我想这第二个错误是插件缺陷,并不重要。

环境:
  • 0.9.1-Lombok插件版本
  • 14.0.3社区-IntelliJ IDEA版本
  • Java 1.6.0_31或Java 1.6.0_45(项目中需要Java 1.6
  • lombock.jar包含在类路径中
  • 编译器->注释处理器设置为“启用注释处理”
在其他情况下,我的lombok插件工作正常。在Eclipse下,这个例子也可以编译。 但当我使用IDEA时,“@Builder”会失败。
我是团队中唯一一个使用IntelliJ的人,我不想回到Eclipse:(.
有人有这个问题吗?

有人能帮我吗?

我试着用不同的设置复制:

  • 爪哇8
  • Lombok版本1.16.2
  • Lombok插件0.9.1
  • 梯度2.3
我的代码运行正常。我遇到的唯一问题是以下IntelliJ错误:

我想这可能是一些插件问题,因为编译没有任何问题。这可能会有帮助,我使用了gradlebuildtask进行编译

@Getter
@Builder
public class Foo {
    private String foo;

    public static FooBuilder fooBuilder(String foo) {
        FooBuilder builder = builder();
        builder.foo(foo);
        return builder;
    }

}

public class Bar {
    public static void main(String[] args) {
        Foo foo = Foo.fooBuilder("foo").build();
        System.out.println(foo.getFoo());
    }
}

apply plugin: 'java'

sourceCompatibility = 1.8
version = '1.0'

repositories {
    mavenCentral()
}

configurations {
    provided
    compile.extendsFrom provided
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.11'
    provided 'org.projectlombok:lombok:1.16.2'
}

该问题的快速更新,不久前我已将该问题转发给插件的官方GitHub。


关于@Builder for Jdk 1.6的问题是已知的,不会解决。

感谢@lusiak的回答,但它仍然不起作用。我认为这两个错误是相关的,但它们不是。当我使用Java 1.7运行这个示例时,它会编译,并且只显示IntelliJ错误。但是当我使用Java 1.6编译时(这是我们团队项目中需要的)它失败了。最奇怪的是,Eclipse在Java 1.6上编译这段代码时没有问题……你使用过Maven或Gradle这样的构建系统吗?是的,我使用Maven。如果你想看看它,我刚刚在GitHub上推出了一个示例:我只是克隆了你的repo,它对我来说运行良好。我没有安装Java 6,但我更改了项目语言级别设置为1.6,并在pom.xml中设置它,它仍然适用于我。哇,感谢您的承诺!:-)不幸的是,它不是…我需要使用Build->make project中使用的工具创建项目(Ctrl+F9 def keymap)。为什么?在现代项目中,这个例子也会有帮助。但我们的团队项目有点旧。它甚至不是一个Mvn项目。我们使用配置了virtualClasspath=“C:/example/classes”的Tomcat。当我使用“make”或“make project automatically”功能时,它会将类编译为“C:/example/classes”多亏了Tomcat热插拔,我可以在不重新部署的情况下立即看到更改。只有基于make的解决方案才能有所帮助…该死,这是一个困难的解决方案。。。