java - 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”编译器参数来忽略它们。
解决方案
关于问题 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 项目。
推荐阅读
- android - android-NullPointerException:尝试调用虚拟方法 p()
- javascript - 如果矩形中没有任何内容,我如何让 if 类什么都不做?
- java - 在数组中的每一列中查找最小值和最大值
- numpy - 如何处理 keras 中非常慢的训练?
- javascript - promise.all 不拒绝失败的获取请求
- java - 如何将具有不同空格数量的字符串分成两部分?
- vb.net - 在比较数字之前检查数字是否为整数在 vb net 中不起作用
- azure - 在 Azure 门户中导入带有链接服务的管道
- c - C - 从 .txt 文件中读取并将字符存储在数组中
- c++ - 如何使用 cin 进行重复输入?