Java Sonarqube-使用Lombok@data删除此未使用的私有字段代码气味

Java Sonarqube-使用Lombok@data删除此未使用的私有字段代码气味,java,sonarqube,lombok,Java,Sonarqube,Lombok,在我的Java项目中,我有一大堆代码的味道,比如: @Data public class Foobar extends Foo { private String baz; } 我的lombok.config位于pom.xml旁边,看起来像: config.stopBubbling = true lombok.addLombokGeneratedAnnotation = true 这带来了代码覆盖率数字,没有清除代码气味 看来我不是遇到这个问题的人 就版本而言: Lombok 1.

在我的Java项目中,我有一大堆代码的味道,比如:

@Data
public class Foobar extends Foo { 
    private String baz;
}
我的
lombok.config
位于
pom.xml
旁边,看起来像:

config.stopBubbling = true
lombok.addLombokGeneratedAnnotation = true
这带来了代码覆盖率数字,没有清除代码气味

看来我不是遇到这个问题的人

就版本而言:

  • Lombok 1.18.8(也尝试使用1.18.10)
  • Jacoco 0.8.4
  • SonarQube 7.9.1.27448
  • SonarQube扫描仪4.0.0.1744

我在这方面见过一些类似的问题,但都是5岁左右的问题,所以我不相信这些答案仍然有效。

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

如果这没用的话。您可以通过在Jacoco config/SonarQube config中排除它们来找到解决方法

在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>

org.jacoco
jacocomaven插件
0.8.2
**/您的课程路径/**
配制剂
报告
测试
报告

对于SonarQube,在调用mvn sonar:sonar时,可以使用-Dsonar.includes参数进行包含和-Dsonar.Excludes参数

这不是代码覆盖率(计算正确),而是代码气味问题。我有许多类(和项目)使用这种格式,所以我不想排除Directories。如果这样,我认为您可以通过向pom中添加sonar.issue.ignore属性来忽略代码气味,只针对这些类。在运行
mvn sonar:sonar
时发现代码气味消失了,不确定原因。。但我要这样做,而不是使用声纳扫描仪cli