Gradle的依赖方式——Lombok在Gradle中的正确配置姿势

栏目: 编程工具 · 发布时间: 5年前

内容简介:写过java的都知道,lombok几乎在项目中处于不可或缺的一部分,但是lombok在Gradle的项目中配置并非人人都知道。很多人在项目依赖中直接这样写但这样的处理在Gradle 5.0以上被命令禁止了,在4.x的高级版本中编译时也会有对应的告警

写过 java 的都知道,lombok几乎在项目中处于不可或缺的一部分,但是lombok在Gradle的项目中配置并非人人都知道。

很多人在项目依赖中直接这样写

compile "org.projectlombok:lombok:1.18.4"

但这样的处理在Gradle 5.0以上被命令禁止了,在4.x的高级版本中编译时也会有对应的告警

The following annotation processors were detected on the compile classpath: 'lombok.launch.AnnotationProcessorHider$AnnotationProcessor' 
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.

Gradle的几种依赖方式

下面先来了解下目前Gradle(4.1以上)的几种常见的依赖方式。

  • api:与旧版的compile相同;
  • implementation:解决重复依赖问题。例如A依赖B,B依赖C,那么A里面将不能调用C的方法;
  • compile only:编译有效,打包无效。替代旧版的provider;
  • runtime only:打包有效,编译无效;
  • test、debug、release implementation:对应test、debug、release环境的implementation。

回到Lombok的使用上,我们知道lombok是可以简化编写的代码,可以让开发人员通过注解的形式少写一些重复具有模板形式的代码。然后这些注解可以在代码编译的时候,自动生成对应模板代码。

并且在打jar/war包的时候,并不需要把lombok的依赖打进包中,所以Lombok在依赖上应该是compile only(仅在编译时生效)才对。

在Gradle 5.0环境下,我们尝试下改成

compileOnly "org.projectlombok:lombok:1.18.4"

然后执行gradle build。会发现代码报错,找不到对应生成后的代码(如果用idea build则不会,因为自带了插件。4.4+的版本也不会报错,但会告警)。

Lombok的正确配置

回到开头的官方告警中,有这么一句

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.

在5.0的环境下,注解处理将不再compile classpath中,需要手动添加到annotation processor path。

最终的对应依赖如下

compileOnly 'org.projectlombok:lombok:1.18.4'
annotationProcessor 'org.projectlombok:lombok:1.18.4'
testCompileOnly 'org.projectlombok:lombok:1.18.4'
testAnnotationProcessor 'org.projectlombok:lombok:1.18.4'

P.S. 如果不配置compileOnly,只配annotationProcessor(gradle5.0以上才有),也会build成功,但会把依赖也打包进去。

针对5.0以下版本,对应依赖如下

compileOnly 'org.projectlombok:lombok:1.18.4'

看完后,大家可以动起来,把自己项目中的lombok配置改掉吧(注意gradle版本)。

更多技术文章、精彩干货,请关注

博客:zackku.com

微信公众号:Zack说码

Gradle的依赖方式——Lombok在Gradle中的正确配置姿势

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Linux命令行与shell脚本编程大全 第3版

Linux命令行与shell脚本编程大全 第3版

[美]布鲁姆,布雷斯纳汉 / 门佳、武海峰 / 人民邮电出版社 / 2016-8-1 / CNY 109.00

这是一本关于Linux命令行与shell脚本编程的全方位教程,主要包括四大部分:Linux命令行,shell脚本编程基础,高级shell脚本编程,如何创建实用的shell脚本。本书针对Linux系统的最新特性进行了全面更新,不仅涵盖了详尽的动手教程和现实世界中的实用信息,还提供了与所学内容相关的参考信息和背景资料。通过本书的学习,你将轻松写出自己的shell脚本。一起来看看 《Linux命令行与shell脚本编程大全 第3版》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具