IntelliJ 14 + Lombok 插件 + @Builder = 错误
IntelliJ 14 + Lombok plugin + @Builder = error
我的 IntelliJ 14 和 Lombok 注释“@Builder”有问题。
我有一些 class :
@Getter
@Builder
public class TransactionFilter {
private String name;
private ProductType product;
...
public static TransactionFilterBuilder defaultBuilder() {
TransactionFilterBuilder builder = builder();
builder.product(ProductType.DEFAULT);
return builder;
}
}
我正在尝试在另一个 class 中使用它生成的构建器:
import org.---.TransactionFilter.TransactionFilterBuilder;
public class Foo {
public void boo() {
TransactionFilterBuilder filterBuilder;
...
}
}
在这两个 classes 中我都有一些错误
使用 Java 1.6 编译时出现错误:
TransactionFilter java:26: 找不到符号
符号:class TransactionFilterBuilder
位置:class org.---.TransactionFilterBuilder
我的工具提示还说在第 26 行我有不兼容的类型:
必填:org.---.TransactionFilter.TransactionFilterBuilder
找到:org.---.TransactionFilter.TransactionFilterBuilder
我猜第二个错误是插件缺陷,并不重要。
环境:
- 0.9.1 - Lombok 插件版本
- 14.0.3 社区 - IntelliJ IDEA 版本
- Java 1.6.0_31 or Java 1.6.0_45 (Java 项目需要1.6)
- lombock.jar 包含在 classpath
中
- 编译器 -> 注释处理器设置为 "Enable annotation processing"
在其他情况下,我的 lombok 插件工作正常。同样在 Eclipse 下,此示例也会编译。
但是当我使用 IDEA 时,“@Builder”失败了。
我是我团队中唯一使用 IntelliJ 的人,我不想回到 Eclipse :(.
有人遇到过这个问题吗?
有人可以帮助我吗?
我尝试使用稍微不同的设置进行重现:
- Java 8
- 龙目岛版本 1.16.2
- 龙目岛插件 0.9.1
- Gradle 2.3
我的代码运行良好。我遇到的唯一问题是以下 IntelliJ 错误:
我想可能是插件的问题,因为编译没有问题。这可能会有所帮助,我使用 gradle 构建任务进行编译。
@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。
https://github.com/mplushnikov/lombok-intellij-plugin/issues/91
Jdk 1.6 的@Builder 问题是已知的,不会被修复。
我的 IntelliJ 14 和 Lombok 注释“@Builder”有问题。
我有一些 class :
@Getter
@Builder
public class TransactionFilter {
private String name;
private ProductType product;
...
public static TransactionFilterBuilder defaultBuilder() {
TransactionFilterBuilder builder = builder();
builder.product(ProductType.DEFAULT);
return builder;
}
}
我正在尝试在另一个 class 中使用它生成的构建器:
import org.---.TransactionFilter.TransactionFilterBuilder;
public class Foo {
public void boo() {
TransactionFilterBuilder filterBuilder;
...
}
}
在这两个 classes 中我都有一些错误
使用 Java 1.6 编译时出现错误:
TransactionFilter java:26: 找不到符号 符号:class TransactionFilterBuilder 位置:class org.---.TransactionFilterBuilder
我的工具提示还说在第 26 行我有不兼容的类型:
必填:org.---.TransactionFilter.TransactionFilterBuilder
找到:org.---.TransactionFilter.TransactionFilterBuilder
我猜第二个错误是插件缺陷,并不重要。
环境:
- 0.9.1 - Lombok 插件版本
- 14.0.3 社区 - IntelliJ IDEA 版本
- Java 1.6.0_31 or Java 1.6.0_45 (Java 项目需要1.6)
- lombock.jar 包含在 classpath 中
- 编译器 -> 注释处理器设置为 "Enable annotation processing"
在其他情况下,我的 lombok 插件工作正常。同样在 Eclipse 下,此示例也会编译。
但是当我使用 IDEA 时,“@Builder”失败了。
我是我团队中唯一使用 IntelliJ 的人,我不想回到 Eclipse :(.
有人遇到过这个问题吗?
有人可以帮助我吗?
我尝试使用稍微不同的设置进行重现:
- Java 8
- 龙目岛版本 1.16.2
- 龙目岛插件 0.9.1
- Gradle 2.3
我的代码运行良好。我遇到的唯一问题是以下 IntelliJ 错误:
我想可能是插件的问题,因为编译没有问题。这可能会有所帮助,我使用 gradle 构建任务进行编译。
@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。
https://github.com/mplushnikov/lombok-intellij-plugin/issues/91
Jdk 1.6 的@Builder 问题是已知的,不会被修复。