annotationProcessor gradle 4.7+ 配置不运行 lombok

2024-03-24

我在使用 gradle 4.7 项目时收到以下消息

The following annotation processors were detected on the compile classpath: 'lombok.launch.AnnotationProcessorHider$AnnotationProcessor' and 'lombok.launch.AnnotationProcessorHider$ClaimingProcessor'. Detecting annotation processors on the compile classpath is
Deprecated and Gradle 5.0 will ignore them. Please add them to the annotation processor path instead. If you did not intend to use annotation processors, you can use the '-proc:none' compiler argument to ignore them.

跑步时

gradlew build --warning-mode=all

在具有以下 Gradle 配置的项目上

compileOnly('org.projectlombok:lombok')
testCompileOnly('org.projectlombok:lombok')

正如警告所示,建议将它们放在annotationProcessor (and testAnnotationProcessor)配置以兼容gradle 5.0

annotationProcessor('org.projectlombok:lombok')
testAnnotationProcessor('org.projectlombok:lombok')

然而,通过一个简单的测试:

@Slf4j
public class LombokTests {
    @Test
    public void lombokCompiles() {
        log.info("foobar");
    }
}

该配置失败:

> Task :compileTestJava FAILED
D:\Users\bobjones\repos\my-new-app\src\test\java\com\example\app\LombokTests.java:10: error: cannot find symbol
@Slf4j
 ^
  symbol: class Slf4j
1 error

我错过了什么吗?


Add the compileOnly/testCompileOnly配置

annotationProcessor('org.projectlombok:lombok')
compileOnly('org.projectlombok:lombok')
testAnnotationProcessor('org.projectlombok:lombok')
testCompileOnly('org.projectlombok:lombok')

根据文档 https://docs.gradle.org/4.7-rc-1/userguide/java_plugin.html#sec:java_compile_avoidance,annotationProcessor 配置仍然需要compileOnly (and testCompileOnly对于测试类)配置以发挥作用。至于对增量注释处理的支持,Lombok 的实现者刚刚合并了对 master 的支持,但截至 2018 年 5 月 25 日尚未包含上线版本。

他们的最后一个版本 16.2.20 跨越提交直到2018 年 1 月 9 日 https://github.com/rzwitserloot/lombok/commits/v1.16.20Gradle 更改已被拉入 master2018 年 5 月 15 日 https://github.com/rzwitserloot/lombok/commit/366d18c8614d00e17447781796c65ee693251d5c所以我怀疑新版本距离发布不会太远,尽管他们'Edgy' https://projectlombok.org/download-edge发行版不包含有关此功能的任何注释。

2020 年 10 月编辑:

A Gradle 插件可通过 io.freefair 获取 https://plugins.gradle.org/plugin/io.freefair.lombok它可以自动配置这些设置并帮助保持 lombok 最新(当然您可以自己覆盖 lombok 版本)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

annotationProcessor gradle 4.7+ 配置不运行 lombok 的相关文章

随机推荐

  • Phaser3 场景过渡

    我是新来的Phaser3在开始一个疯狂的项目之前 我想知道我应该如何开始 在场景之间切换 我看到有几个函数 启动 启动 切换 运行 恢复 暂停等 例如 假设我想要 2 个场景 一个菜单和一个游戏 我在菜单上启动 我想进入游戏场景 如果我单击
  • MongoDB 中“id”和“_id”字段的区别

    使用 MongoDB 文档中的字段 ID 或 ID 有什么区别吗 我问这个 因为我通常使用 id 但是我在文档中看到了这种排序 id 1 http www mongodb org display DOCS Optimizing Object
  • 高效的按位运算,用于计数位或查找最右|最左的位

    给定一个 unsigned int 我必须执行以下操作 计算设置为 1 的位数 找到最左边1位的索引 找到最右边1位的索引 操作不应依赖于体系结构 我已经使用按位移位完成了此操作 但我必须迭代几乎所有位 es 32 例如 计算 1 unsi
  • 窗口背景图像的模糊效果

    我有一个以图像为背景的窗口 在那个窗口上我还有按钮和其他控件 这是我对该窗口的风格
  • Angular:使用指令禁用材质按钮不起作用

    我想通过指令禁用一些按钮 向按钮添加禁用属性 该指令适用于经典 html 按钮 但不适用于角形材质设计按钮 mat button https material angular io components button overview im
  • float64 到 float32 的转换给出了意外的结果

    当我转换一个float64数到一个float32我得到一个奇怪的结果 In 22 np float32 20140131 0 Out 22 20140132 0 为什么会发生这种情况 20140131 0 无法表示为 32 位整数 32位浮
  • 如何为 Azure 虚拟机生成磁盘不足警报

    我有一个虚拟机 用作构建服务器 该虚拟机的磁盘经常堆积 并且正在努力解决该问题 同时我正在寻找设置在磁盘空间变高时触发警报的选项 我检查了监控下的可用指标 但只能找到 磁盘写入字节 和 磁盘读取字节 这对我没有帮助 我需要帮助设置发送到我的
  • 通过R中的卷积添加两个随机变量

    我想计算 R 中两个概率分布的卷积 我需要一些帮助 为了简单起见 假设我有一个变量 x 它呈正态分布 平均值 1 0 stdev 0 5 变量 y 呈对数正态分布 平均值 1 5 stdev 0 75 我想确定 z x y 据我所知 z 的
  • .prop() 与 .data()

    随着新版本的发布jQuery v1 6 http api jquery com category version 1 6 并添加了 prop method 使用上是否存在本质区别 prop over data 我在文档中看到 在 IE9 之
  • Spring MVC:发布请求和带有数组的 json 对象:错误的请求

    我正在尝试使用 Spring MVC 从 http POST 请求中检索参数 该请求包含以下 json 对象 内容类型 application json 该对象本身包含一个 customObjects 数组 globalId 338 lin
  • 有角。为什么调用markForCheck()结果来查看更新

    到处都说 markForCheck 只是将当前组件视图和所有父组件 直到根组件 标记为脏组件 因此 下次 DetectChanges 执行时 它将更新视图 从这一点上我有两个问题 两者都在该组件具有的上下文中changeDetection
  • 在php中,“return false”在echo语句之后会执行任何操作吗?

    当我在 php 中显示错误消息时 我通常这样做 if query Success code else Error message error msg An error occurred return false 我回应 error msg前
  • Bokeh:AttributeError:“DataFrame”对象没有属性“tolist”

    我是 pandas 和 bokeh 的新手 我正在尝试从 pandas 数据帧创建散点图 但是 我不断收到以下错误 new data colname df colname tolist AttributeError DataFrame ob
  • 发现扩展时遇到错误:Error Domain=PlugInKit Code=13“查询已取消”

    我正在尝试显示或上传 UIImage 但收到此错误 发现扩展时遇到错误 Error Domain PlugInKit Code 13 查询已取消 UserInfo NSLocalizedDescription 查询已取消 import UI
  • 宏中的 SAS 宏

    我有一个关于 macro 的问题 我可以在另一个 宏中设置 宏吗 简短的例子 情况的 图片 macro Tier 1 do Iter 1 to i macro Tier 2 proc sql noprint select 1 Iter in
  • SOAP 请求返回 wsdl 而不是预期的 SOAP 响应

    我的 SOAP 请求有问题 当我尝试向服务器发送以下肥皂请求时 它会返回 预期结果 地点 https YOUR SERVER apitransactional services TransactionalService wsdl Input
  • Ruby 相当于 grep -v

    这就是我一直在做的事情 my array reject elem elem regex each 我觉得这有点笨拙 但我还没有找到任何内置的东西可以让我将其更改为my array grepv regex 有这样的功能吗 Ruby 2 3 实
  • 如何使用DATA_PUMP导出到S3存储桶?

    我们有 RDS Oracle 实例 我需要将特定架构导出到转储文件中 导出工作并将转储文件复制到 DATA PUMP DIR 问题是 RDS 没有文件目录访问权限 我需要在 S3 上导出 DMP 文件或复制到另一个 EC2 实例 文章 LI
  • 轻松的十六进制/浮点转换

    我正在 c 和 python 程序之间进行一些输入 输出 仅浮点值 python 有一个很好的功能 可以将浮点值转换为十六进制数字并返回 如您在此链接中看到的 http docs python org library stdtypes ht
  • annotationProcessor gradle 4.7+ 配置不运行 lombok

    我在使用 gradle 4 7 项目时收到以下消息 The following annotation processors were detected on the compile classpath lombok launch Annot