lombok.config配置详解(lombok-1.18.28全)

文章详细介绍了Lombok的配置系统,包括如何在不同包下放置配置文件、覆盖父级配置、导入其他配置文件。内容涵盖各种配置项,如accessors的prefix、chain、fluent等,以及flagUsage相关的配置,用于控制Lombok注解的警告、错误或允许级别。此外,还讨论了日志字段、构造函数、equals和hashCode方法的生成策略。
摘要由CSDN通过智能技术生成

概要

官方文档: Configuration system

查看lombok的所有配置: java -jar lombok.jar config -g --verbose

一些特性:

  1. lombok.config可以在任意包下放置, 仅对该包下生效, 如果父级也有, 则子包可以覆盖上级配置

  2. lombok.config中可以使用clear清理配置, 如clear lombok.val.flagUsage, 表示将lombok.val.flagUsage配置恢复为默认值

  3. lombok.config中可以导入其它配置, 并对其他配置文件的扩展名不做限制, 也可以循环导入

    # 导入相对路径文件
    import ../configuration/model.config
    # 导入绝对路径文件(不推荐, 因为成员之间共享不方便)-Linux
    import /etc/lombok/model.config
    # Windows
    import d:/lombok/model.config
    # 从jar/zip的根目录导入
    import ../deps/lombok-config.jar
    # 从jar/zip的指定文件导入
    import ../deps/lombok-config.zip!base/model.config
    # 可以配置环境变量, 如从JAVA_PROJECTS下导入
    import <JAVA_PROJECTS>/shared.config
    # ~表示从用户的home目录导入, 会被替换为环境变量"user.home"
    import ~/my.config
    
  4. 语法说明:

    # '#'开头的行表示注释
    # 取消父级配置, 示例为恢复lombok.val.flagUsage配置为默认值
    clear lombok.val.flagUsage
    # 数组/列表可以使用`+=`和`-=`来增加/删除条目
    lombok.accessors.prefix += m_
    lombok.accessors.prefix -= m_
    # 其余enum/boolean类型均使用字面量即可, 两侧空格可有可无
    lombok.val.flagUsage=false
    lombok.log.fieldName = myLog
    

具体配置

由于lombok中充斥着大量的flagUsage结尾的配置, 我这里集中放在本文末尾整理

如注释中没有特殊说明, 则示例中的值均为默认值

非flagUsage结尾的配置:

## 类型: Boolean
## 作用: 如果为true, 阻止lombok继续向上层目录查找配置文件
config.stopbubbling=false
## 类型: enum (lombok.core.configuration.CapitalizationStrategy)
## 可选值: [BASIC | BEANSPEC]
## 作用: 生成getter/setter字段时的属性名大小写规则
## 详解: 如果分别有字段xName, 和字段userName
##      在basic模式下, get方法名为getXName和getUserName, beanspec模式则为getxName, getUserName
## 区别: 两种规范而已, 低版本lombok默认使用的是beanspec
lombok.accessors.capitalization=BASIC
## 类型: boolean
## 作用: 如果为true, 生成的setter方法不再是void, 而是返回this, 方便链式调用
lombok.accessors.chain=false
## 类型: boolean
## 作用: 为true时, 生成getter/setter方法时不加get/set前缀
## 示例: 字段为username, 那么get/set方法则分别为username()和username(String username)
lombok.accessors.fluent=false
## 类型: boolean
## 作用: 为true时, 生成的getter/setter方法和with(with已弃用)方法带有final修饰符(防止重载)
lombok.accessors.makeFinal=false
## 类型: string数组
## 作用: 生成的getters, setters自动去除指定前缀
## 默认为空, 示例为仅sys_前缀会被去除
lombok.accessors.prefix += sys_
lombok.accessors.prefix += p_
lombok.accessors.prefix -= p_
## 类型: boolean
## 作用: 为true时, 在生成的代码上添加 @javax.annotation.Generated注解, 已弃用, 使用'lombok.addJavaxGeneratedAnnotation' 代替
lombok.addGeneratedAnnotation = false
## 类型: boolean
## 作用: 为true时, 在生成的代码上添加 @javax.annotation.Generated注解
lombok.addJavaxGeneratedAnnotation=false
## 类型: boolean
## 作用: 为true时, 在生成的代码上添加@lombok.Generated注解
lombok.addLombokGeneratedAnnotation=false
## 类型: nullity-annotation-library (带有空注解的库)
## 可选值:  none | javax(=JSR305, 不推荐) | jakarta | eclipse | jetbrains | netbeans | androidx | android.support(安卓已弃用) | checkerframework(推荐) | findbugs | spring | jml | CUSTOM:com.foo.my.nonnull.annotation:com.foo.my.nullable.annotation(自定义)
## 作用: 非none时, lombok会自动添加@NotNull和@Nullable注解(例如在toString返回值永远不会为null, 而equals方法参数可以为null)
lombok.addNullAnnotations=none
## 类型: boolean
## 作用: 为true时, 在生成的代码上添加 @java.lang.SuppressWarnings("all") 注解
lombok.addSuppressWarnings=true
## 类型: boolean
## 作为: 为true时, 构造函数添加@ConstructorProperties注解
lombok.anyConstructor.addConstructorProperties=false
## 类型: boolean
## 作用: 生成构造函数时自动添加@ConstructorProperties注解
lombok.anyConstructor.suppressConstructorProperties = false
## 类型: string
## 作用: 生成的builder类名称, '*'表示类名, 如设置为'*Abac', 则'User'类的builder类名为: UserAbac
lombok.builder.className = *Builder
## 类型: string数组
## 作用: 将字段上指定的注解复制到getters, setters, with methods, builder-setters等
## 默认为空, 示例为将字段上的Abac注解复制到getter/setter和构建器的setter方法上(with已被lombok弃用)
lombok.copyableAnnotations += kim.nzxy.Abcd
## 类型: enum (lombok.core.configuration.CallSuperType)
## 可选值: [CALL | SKIP | WARN]
## 作用: 生成equals 和 hashCode方法时, callSuper的默认值
lombok.equalsAndHashCode.callSuper = WARN
## 类型: boolean
## 作用: 生成equals 和 hashCode方法时, 不调用getter方法, 而是直接使用字段
lombok.equalsAndHashCode.doNotUseGetters=false
## 类型: boolean
## 在生成的代码上添加@edu.umd.cs.findbugs.annotations.SuppressFBWarnings注解
lombok.extern.findbugs.addSuppressFBWarnings=false
## 类型: boolean
## 作用: 将所有字段设为final(即便没有lombok注解), 可以使用@NonFinal注解覆盖此配置
lombok.fieldDefaults.defaultFinal = false
## 类型: boolean
## 作用: 如果没有显示的修饰符(即便没有lombok注解), 将全部加上private修饰符, 可以使用 @PackagePrivate 注解覆盖此配置
lombok.fieldDefaults.defaultPrivate = [false | true]
## 类型: string
## 作用: @FieldNameConstants注解生成的默认内部类类名
lombok.fieldNameConstants.innerTypeName=Fields
## 类型: boolean
## 作用: @FieldNameConstants注解生成的常量名是否大写, 设为true表示大写, 否则和字段名一致
lombok.fieldNameConstants.uppercase=false
## 类型: boolean
## 作用: Boolean类型字段的getter方法名为getXXX()而非isXXX()
lombok.getter.noIsPrefix=true
## 类型: 自定义日志声明
## 作用: CustomLog注解使用,
## 默认值为空, 示例为自定义log, 返回值和方法中间用空格隔开, NAME位置可选值为: TYPE、NAME、TOPIC 和 NULL
## 使用NAME生成: private static final my.cool.Logger log = my.cool.LoggerFactory.getLogger(LogExample.class.getName());
## 使用TYPE生成: private static final my.cool.Logger log = my.cool.LoggerFactory.getLogger(LogExample.class);
## 使用NULL生成: private static final my.cool.Logger log = my.cool.LoggerFactory.getLogger();
## 使用TOPIC: 需要在@CustomLog注解中指定topic,
##      如@CustomLog(topic="abcd")生成: private static final my.cool.Logger log = my.cool.LoggerFactory.createLogger("abcd");
lombok.log.custom.declaration = my.cool.Logger my.cool.LoggerFactory.createLogger(NAME)
## 类型: boolean
## 作用: 生成的日志字段为static字段
lombok.log.fieldIsStatic = true
## 类型: identifier-name
## 作用: 生成的日志字段的字段名
lombok.log.fieldName = log
## 类型: boolean
## 作用: @Data and @Value注解生成一个private的无参构造函数
lombok.noArgsConstructor.extraPrivate=false
## 类型: enum (lombok.core.configuration.NullCheckExceptionType)
## 可选值: [NullPointerException | IllegalArgumentException | Assertion | JDK | Guava]
## 作用: 如果参数为空, 抛出指定异常
lombok.nonNull.exceptionType = NullPointerException
## 类型: boolean
## 作用: @Singular注解自动将参数名从复数变成单数
lombok.singular.auto = true
## 类型: boolean
## 作用: 如果是java.util包下的继承, 自动变为不可变类型, 如ImmutableList等
lombok.singular.useGuava=false
## 类型: enum (lombok.core.configuration.CallSuperType)
## 作用: 生成toString方法时, callSuper的默认值
lombok.toString.callSuper=SKIP
## 类型: boolean
## 作用: tostring方法不调用getter方法而是直接使用字段值
lombok.toString.doNotUseGetters = false
## 类型: boolean
## 作用: 生成的toString方法是否包含字段名, 不包含的话大概是这样的: "Person(1, 张三, 21, false)"
lombok.toString.includeFieldNames = true
## 类型: boolean
## 作用: 为true表示生成的toString方法仅包含显式标记为 @ToString.Include 的字段和方法, 否则则包含非static字段, 以及非$开头的字段
lombok.toString.onlyExplicitlyIncluded = false

以flagUsage结尾的配置

注: 值的可选项分别为: WARNING, ERROR, ALLOW, 分别表示警告, 异常, 允许

## @Accessors注解
lombok.accessors.flagUsage=ALLOW
## XxxArgsConstructor: 如@AllArgsConstructor/@NoArgsConstructor/@RequiredArgsConstructor
lombok.anyConstructor.flagUsage = ALLOW
## @AllArgsConstructor注解
lombok.allArgsConstructor.flagUsage = ALLOW
## @Builder注解
lombok.builder.flagUsage = ALLOW
## @Cleanup注解
lombok.cleanup.flagUsage = ALLOW
## @Data注解
lombok.data.flagUsage = ALLOW
## @Delegate注解
lombok.delegate.flagUsage = ALLOW
## @EqualsAndHashCode注解
lombok.equalsAndHashCode.flagUsage = ALLOW
## an experimental feature注解
lombok.experimental.flagUsage = ALLOW
## @ExtensionMethod注解
lombok.extensionMethod.flagUsage = ALLOW
## @FieldDefaults注解
lombok.fieldDefaults.flagUsage = ALLOW
## @FieldNameConstants注解
lombok.fieldNameConstants.flagUsage = ALLOW
## @Getter注解
lombok.getter.flagUsage = ALLOW
## @Getter(lazy=true)注解
lombok.getter.lazy.flagUsage = ALLOW
## @Helper注解
lombok.helper.flagUsage = ALLOW
## @Jacksonized注解
lombok.jacksonized.flagUsage = ALLOW
## @CommonsLog注解
lombok.log.apacheCommons.flagUsage = ALLOW
## @CustomLog注解
lombok.log.custom.flagUsage = ALLOW
## any of the log annotations注解
lombok.log.flagUsage = ALLOW
## @Flogger注解
lombok.log.flogger.flagUsage = ALLOW
## @Log注解
lombok.log.javaUtilLogging.flagUsage = ALLOW
## @JBossLog注解
lombok.log.jbosslog.flagUsage = ALLOW
## @Log4j注解
lombok.log.log4j.flagUsage = ALLOW
## @Log4j2注解
lombok.log.log4j2.flagUsage = ALLOW
## @Slf4j注解
lombok.log.slf4j.flagUsage = ALLOW
## @XSlf4j注解
lombok.log.xslf4j.flagUsage = ALLOW
## @NoArgsConstructor注解
lombok.noArgsConstructor.flagUsage = ALLOW
## @NonNull注解
lombok.nonNull.flagUsage = ALLOW
## 注解中的onX属性, onMethod / onParam / onConstructor
lombok.onX.flagUsage = ALLOW
## @RequiredArgsConstructor注解
lombok.requiredArgsConstructor.flagUsage = ALLOW
## @Setter注解
lombok.setter.flagUsage = ALLOW
## @SneakyThrows注解
lombok.sneakyThrows.flagUsage = ALLOW
## @StandardException注解
lombok.standardException.flagUsage = ALLOW
## @SuperBuilder注解
lombok.superBuilder.flagUsage = ALLOW
## @Synchronized注解
lombok.synchronized.flagUsage = ALLOW
## @ToString注解
lombok.toString.flagUsage = ALLOW
## @UtilityClass注解
lombok.utilityClass.flagUsage = ALLOW
## 使用val关键字(其实lombok中var为接口)
lombok.val.flagUsage = ALLOW
## @Value注解
lombok.value.flagUsage = ALLOW
## 使用var关键字(其实lombok中var为接口)
lombok.var.flagUsage = ALLOW
## @With注解
lombok.with.flagUsage = ALLOW
## @WithBy注解
lombok.withBy.flagUsage = ALLOW
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值