首页 > 解决方案 > Spring boot gradle + lombok - 在编译类路径上检测注释处理器已被弃用

问题描述

gradle Spring boot application当我在https://start.spring.io/上创建新的

我有gradle-4.10.2-bin.zip包装属性。

1)为什么默认使用这个版本的gradle?已经存在5.0版

2)如果我将 lombok 依赖项添加到项目并尝试编译,我会得到:

在编译类路径上检测注释处理器已被弃用。Gradle 5.0 将忽略编译类路径上的注释处理器。在编译类路径中检测到以下注释处理器:'org.springframework.boot.configurationprocessor.ConfigurationMetadataAnnotationProcessor'和'org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor'和'lombok.launch.AnnotationProcessorHider$AnnotationProcessor'和'lombok.launch.AnnotationProcessorHider$声明处理器'。请改为将它们添加到注释处理器路径。如果您不打算使用注释处理器,则可以使用“-proc:none”编译器参数来忽略它们。

标签: javaspringspring-bootgradle

解决方案


关于问题 2):您似乎lombok在错误(已弃用)配置中添加了依赖项(也许?):您应该为这种依赖项compile使用专用配置:annotationProcessor

dependencies {        

    /* -------------- Lombok -----------------------------------------------------*/
    compileOnly "org.projectlombok:lombok:${lombokVersion}"
    annotationProcessor "org.projectlombok:lombok:${lombokVersion}"
    testCompileOnly "org.projectlombok:lombok:${lombokVersion}"
    testAnnotationProcessor "org.projectlombok:lombok:${lombokVersion}"

}

对于问题 1):Gradle 版本 5.0 是最近的版本,我猜 Spring Initializer 尚未更新为默认使用此版本。

编辑:请参阅与使用 Gradle 5 相关的公开 PR:https ://github.com/spring-io/initializr/issues/741

EDIT 2 now (04/04/2019) Spring Initializr 使用 Gradle 版本 5.2.1 生成 Gradle 项目。


推荐阅读