我正在使用 Gradle 作为 ItelliJ IDE 上的构建工具开发一个 spring-boot 项目。
我lombok
在 gradle.build中声明了依赖项:
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
请求的方法,其有效负载映射到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'
它没有帮助。这是为什么?我错过了什么?
(我也启用annotationProcessor
了我的 IntelliJ)
为了让 Gradle 接受注解处理器,他们引入了一个单独的配置,它将在“正常”编译之前生成所有新代码。
对于 Lombok,它看起来像这样:
dependencies {
compileOnly 'org.projectlombok:lombok:1.18.20'
annotationProcessor 'org.projectlombok:lombok:1.18.20'
testCompileOnly 'org.projectlombok:lombok:1.18.20'
testAnnotationProcessor 'org.projectlombok:lombok:1.18.20'
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句