gpt4 book ai didi

java - Sonarqube - 使用 Lombok @data 删除此未使用的私有(private)字段 Code Smell

转载 作者:行者123 更新时间:2023-12-01 23:23:23 28 4
gpt4 key购买 nike

在我的 Java 项目中,我的 Java 项目中有很多类似这样的代码:

@Data
public class Foobar extends Foo {
private String baz;
}

我的lombok.config位于pom.xml旁边,看起来像:

config.stopBubbling = true
lombok.addLombokGeneratedAnnotation = true

这带来了代码覆盖率数字,但并未清除代码异味。

看来我不是only遇到此问题的人。

就版本而言:

  • Lombok 1.18.8(也尝试过 1.18.10)
  • 雅 cocoa 0.8.4
  • SonarQube 7.9.1.27448
  • SonarQube 扫描仪 4.0.0.1744

我见过一些类似的问题,但它们都是大约 5 年前的问题,所以我不相信答案仍然有效。

最佳答案

几个月前我也遇到过和你同样的问题。我的jacoco版本是0.8.2,lombok是v1.16.16。我记得在项目根目录下添加lombok.config后问题就消失了。请注意,如果您为已标记为 Data 的类定义自己的构造函数,则覆盖率将根据您的测试被调用的构造函数数量来计算。

如果这没有帮助。您可以通过在 Jacoco 配置/SonarQube 配置中排除它们来找到解决方法

在 jacoco 中排除的示例:

<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.2</version>
<configuration>
<excludes>
<exclude>**/your_class_path/**</exclude>
</excludes>
</configuration>
<executions>
<execution>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<!-- attached to Maven test phase -->
<execution>
<id>report</id>
<phase>test</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>

对于 SonarQube,您可以在调用 mvn sonar:sonar 时使用 -Dsonar.inclusions 参数进行包含,并使用 -Dsonar.exclusions 参数

关于java - Sonarqube - 使用 Lombok @data 删除此未使用的私有(private)字段 Code Smell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58319017/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com