【发布时间】:2021-08-04 15:55:16
【问题描述】:
我正在使用 Gradle 作为 ItelliJ IDE 上的构建工具开发一个 spring-boot 项目。
我在 gradle.build 中声明了 lombok 的依赖关系:
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web:2.5.3'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
compileOnly 'org.projectlombok:lombok:1.18.20'
}
我有一个模型类:
import lombok.Data;
import java.math.BigDecimal;
@Data
public class ProductModel {
private String name;
private BigDecimal price;
private Integer quantity;
}
如您所见,我已使用@Data 进行注释。
我的控制器有处理POST请求的方法,它的payload映射到ProductModel:
@PostMapping
public String createProduct(@RequestBody ProductModel productPayload) {
// Runtime error: error: cannot find symbol, 'getName' in 'ProductModel'
productPayload.getName();
}
我知道我需要在我的 IntelliJ IDE 上安装 lombok 插件,以避免在 getter 方法上出现编译器错误。所以我就这么做了。但是当我运行我的应用程序时,我得到了错误:
error: cannot find symbol
symbol: method getName()
location: variable productPayload of type CreateProductRestModel
我还尝试将依赖项从 compileOnly 更改为 implementation:
implementation 'org.projectlombok:lombok:1.18.20'
没用。这是为什么?我错过了什么?
(我的 IntelliJ 上也启用了annotationProcessor)
【问题讨论】:
-
您是只安装了插件还是同时激活了注解处理? gradle 中还有
annotationProcessor和testAnnotationProcessor依赖项,应该设置。 -
我忘了提到我在 IntelliJ 中启用了 annotationProcessor。您能否提供 gradle 中
annotationProcessor的代码 sn-p? -
@thinkgruen 你能回答一下吗,我会接受的。谢谢!
标签: spring-boot intellij-idea lombok intellij-plugin intellij-lombok-plugin