【问题标题】:How to ignore Sonar 'Uncovered Conditions' for lombok @EqualsAndHashCode如何忽略 lombok @EqualsAndHashCode 的声纳“未覆盖条件”
【发布时间】:2020-01-21 20:36:11
【问题描述】:

对于下面的类 Sonar 正在抱怨 @EqualsAndHashCode 的未覆盖条件(lombok 注释)。我尝试添加“// NOSONAR”来忽略,但没有帮助。请参阅下面的代码以供参考。

import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
@EqualsAndHashCode(callSuper = false) // NOSONAR
public class UserPersonalInfo extends PersonalInfo {

  private String userId;

  private String empployeeId;
}

它显示了 Sonar 报告中 EqualsAndHashCode 的 22 个未发现条件。请帮我解决这个问题。

【问题讨论】:

    标签: java sonarqube lombok


    【解决方案1】:

    在项目根目录下添加 lombok.config 文件并添加:

    config.stopBubbling = true
    lombok.addLombokGeneratedAnnotation = true
    

    config.stopBubbling = true 告诉 Lombok 这是根 目录,并且它不应该在父目录中搜索更多 配置文件(您可以拥有多个 Lombok 配置文件 在不同的目录/包中)。

    lombok.addLombokGeneratedAnnotation = true 是告诉 Lombok 为所有生成的方法添加 @lombok.Generated 注解。

    Jacoco(至少 0.8.0)过滤掉所有带有 @lombok.Generated 注释的方法。

    来源:https://medium.com/@mladen.bolic/lombok-data-improve-your-code-coverage-a74fb624a72b

    【讨论】:

    • 感谢您的快速回复。我会试试这个,让你知道
    • 谢谢!由于我们有很多 POJO 使用 lombok @Data 但业务代码不多,这将我们的声纳代码覆盖率从 40% 提高到 80%(显然分支覆盖率对于默认的声纳质量测量配置非常重要)。
    猜你喜欢
    • 1970-01-01
    • 2014-01-18
    • 2018-05-05
    • 2021-11-10
    • 2021-07-29
    • 1970-01-01
    • 1970-01-01
    • 2018-09-27
    • 2013-10-13
    相关资源
    最近更新 更多