lombok.config----lombok配置系统

版权声明:本文为博主原创文章,码字不易,转载请标明出处。 https://blog.csdn.net/yue530tomtom/article/details/81567015

可以通过配置文件lombok.config来定制lombok:一次性配置lombok的属性可以服务整个项目或者工作台。需要注意该配置文件在lombok1.14+方可使用
根据官网的描述:lombok.config配置文件可以放在任何目录,作用于该目录和其子目录

针对实际项目建议放在工程的根目录或者src目录下(只是建议,你可以拒绝^_^)
 
配置系统对于在整个项目中配置常量(在项目中保持不变),比如日志变量的名称。配置系统还可以用来控制lombok将任何不喜欢的lombok特性的用法标记为警告,甚至是错误。

使用自定义lombok.config

lombok.config中配置项config.stopBubbling=true指明lombok的根目录为当前配置文件所在目录

config.stopBubbling = true

配置文件是分层的,原则是接近源文件的配置设置优先。在根目录的子目录中可以创建lombok.config配置文件,来覆盖根目录的配置文件(只覆盖配置项相同的配置,其他继承根目录的配置,若没有显式配置则使用默认值)

查看支持的特性

查看当前版本的lombok所支持的配置项使用命令工具config(切换到lombok.jar所在目录或者运行时指定目录)

D:\Program Files\eclipse>java -jar lombok.jar config -g --verbose
##
## Key : config.stopBubbling
## Type: boolean
##
## Tell the configuration system it should stop looking for other configuration files (default: false).
##
## Examples:
#
# clear config.stopBubbling
# config.stopBubbling = [false | true]
#
……

cofing工具还可以查看某个配置文件所有的配置项

D:\Program Files\eclipse>java -jar lombok.jar config lombok.config
lombok.val.flagUsage = ERROR
D:\Program Files\eclipse>

一些配置项

lombok.accessors.chain

如果设置成true,以链式生成setter,由默认返回void转为返回this
修改lombok.config配置文件,添加两行

clear lombok.accessors.chain
lombok.accessors.chain=true

这里写图片描述

lombok.accessors.fluent

如果设置成true,使用不带前缀的简单方式生成setter和getter,即使用原始的字段名称省略get和set前缀
修改lombok.config配置文件,添加两行

clear lombok.accessors.fluent
lombok.accessors.fluent=true

这里写图片描述
对比上图也能看出字段chainTest生成的setter的区别

lombok.anyConstructor.suppressConstructorProperties

如果设置成true,跳过添加一个@java.bean.ConstructorProperties生成的构造器
修改配置文件,添加两行

clear lombok.anyConstructor.suppressConstructorProperties
lombok.anyConstructor.suppressConstructorProperties=true

lombok.log.fieldName

生成log字段,默认是log
修改配置文件,添加

clear lombok.log.fieldName
lombok.log.fieldName=mylog

这里写图片描述

lombok.(featureName).flagUsage

可以强制禁用或者不建议使用lombok的特性,配置关键字的值一般是error、warning、allow,默认一般是没有设置。
比如禁用val:在配置文件lombok.config(文件在项目根目录),内容如下

clear config.stopBubbling
config.stopBubbling = true
clear lombok.val.flagUsage
lombok.val.flagUsage=ERROR

再使用val时,提示错误
这里写图片描述

当前使用的版本所支持的所有配置可以参考(用法参考val的例子即可,不再一一列举)

java -jar lombok.jar config -g --verbose
# lombok.accessors.flagUsage = [WARNING | ERROR | ALLOW]
# lombok.allArgsConstructor.flagUsage = [WARNING | ERROR | ALLOW]
# lombok.anyConstructor.flagUsage = [WARNING | ERROR | ALLOW]
# lombok.builder.flagUsage = [WARNING | ERROR | ALLOW]
# lombok.cleanup.flagUsage = [WARNING | ERROR | ALLOW]
# lombok.data.flagUsage = [WARNING | ERROR | ALLOW]
# lombok.delegate.flagUsage = [WARNING | ERROR | ALLOW]
# lombok.equalsAndHashCode.flagUsage = [WARNING | ERROR | ALLOW]
# lombok.experimental.flagUsage = [WARNING | ERROR | ALLOW]
# lombok.extensionMethod.flagUsage = [WARNING | ERROR | ALLOW]
# lombok.fieldDefaults.flagUsage = [WARNING | ERROR | ALLOW]
# lombok.fieldNameConstants.flagUsage = [WARNING | ERROR | ALLOW]
# lombok.getter.flagUsage = [WARNING | ERROR | ALLOW]
# lombok.getter.lazy.flagUsage = [WARNING | ERROR | ALLOW]
# lombok.helper.flagUsage = [WARNING | ERROR | ALLOW]
# lombok.log.apacheCommons.flagUsage = [WARNING | ERROR | ALLOW]
# lombok.log.flagUsage = [WARNING | ERROR | ALLOW]
# lombok.log.flogger.flagUsage = [WARNING | ERROR | ALLOW]
# lombok.log.javaUtilLogging.flagUsage = [WARNING | ERROR | ALLOW]
# lombok.log.jbosslog.flagUsage = [WARNING | ERROR | ALLOW]
# lombok.log.log4j.flagUsage = [WARNING | ERROR | ALLOW]
# lombok.log.log4j2.flagUsage = [WARNING | ERROR | ALLOW]
# lombok.log.slf4j.flagUsage = [WARNING | ERROR | ALLOW]
# lombok.log.xslf4j.flagUsage = [WARNING | ERROR | ALLOW]
# lombok.noArgsConstructor.flagUsage = [WARNING | ERROR | ALLOW]
# lombok.nonNull.flagUsage = [WARNING | ERROR | ALLOW]
# lombok.onX.flagUsage = [WARNING | ERROR | ALLOW]
# lombok.requiredArgsConstructor.flagUsage = [WARNING | ERROR | ALLOW]
# lombok.setter.flagUsage = [WARNING | ERROR | ALLOW]
# lombok.sneakyThrows.flagUsage = [WARNING | ERROR | ALLOW]
# lombok.synchronized.flagUsage = [WARNING | ERROR | ALLOW]
# lombok.toString.flagUsage = [WARNING | ERROR | ALLOW]
# lombok.utilityClass.flagUsage = [WARNING | ERROR | ALLOW]
# lombok.val.flagUsage = [WARNING | ERROR | ALLOW]
# lombok.value.flagUsage = [WARNING | ERROR | ALLOW]
# lombok.var.flagUsage = [WARNING | ERROR | ALLOW]
# lombok.wither.flagUsage = [WARNING | ERROR | ALLOW]

配置文件是分层的:任何配置设置都适用于该名录中的所有源文件,以及子目录中的所有源文件,但更接近源文件的配置设置优先。例如,如果有/projects/lombok.config

lombok.log.fieldName = allLog

和/projects/firstProject/lombok.config

lombok.log.fieldName = firstLog

使用@Log注解:除了在/projects/firstProject中的项目以firstLog作为字段名,各种@log将使用allLog而不是默认的log作为字段名
要恢复由父配置文件设置的配置键到缺省值,可以使用clear选项。例如,如果父配置文件已经配置了val发出警告的所有用法,那么您可以通过在其中包含一个lombok来关闭子目录的警告。配置文件:

clear lombok.val.flagUsage

一些配置键会采用列表的形式进行配置。使用 += 添加一个条目;使用 -= 删除一个单项
比如:要求定义的变量以m_开头,否则就会有警告
在lombok.config配置文件中添加

lombok.accessors.prefix += m_

这里写图片描述
对比这两个变量一个添加了前缀一个没有添加前缀,没有添加前缀的抛出一个警告。
在lombok.config配置文件中可以使用注释,任何#开始的行都被认为是注释

全局配置

防止lombok在父级目录中搜索配置文件,可用如下配置指定lombok根目录

config.stopBubbling = true

建议放在工作台目录或者项目目录

lombok可以添加@javax.annotation.Generated注解尽可能生成注释

lombok.addJavaxGeneratedAnnotation = true

不建议使用这个注释,jdk9破坏了该注释,而且可能不会被修复

注意:直到lombok2.0.0该设置默认是true

@Lombok.Generated注解:在可能的情况下,对所有生成的节点生成注释;对JaCoCo(内置支持),或者其他类型的检查器和代码覆盖工具非常有用

lombok.addLombokGeneratedAnnotation = true

@SuppressFBWarnings,如果您想在类文件上运行FindBugs的话,非常有用的。要启用这个特性,请确保在编译时findbugs在可执行路径中,并添加以下配置键

lombok.extern.findbugs.addSuppressFBWarnings = true

可以影响任何源文件的配置

这些配置键可以使lombok影响源文件,即使源文件中没有任何lombok注解

lombok.fieldDefaults.defaultPrivate = true
lombok.fieldDefaults.defaultFinal = true

开启这些选项意味着lombok将所有源文件的每个字段都设置为final和private,除非显式访问修饰符或注解来抵消这一行为。更多信息参阅@FieldDefaults

lombok.config配置系统
lombok特性(一)
lombok特性(二)

猜你喜欢

转载自blog.csdn.net/yue530tomtom/article/details/81567015
今日推荐