SonarQube Lombok Getter识别

4

我正在使用SonarQube 4.5.4和Java插件3.1。据我所知,此版本的sonar-java从2.8开始部分支持Lombok(Getter和Setter注释)。但在我的情况下,它仍然将带有lombok.Getter的字段报告为:

squid:S1068  Unused private fields should be removed:
@Getter
private String userName;

你有什么想法,为什么会出现这种情况,我应该在哪里修复它呢?

更新

对于字节码,我尝试了sonar.java.binariessonar.binaries两种方式。 我使用sbt,并通过以下sonar-project.properties运行sonar-runner进行分析。

sonar.projectVersion=0.1
sonar.java.binaries=\
    target/scala-2.11/classes,\
    target/scala-2.11/test-classes

sonar.sourceEncoding=UTF-8

sonar.projectName=projectName  
sonar.host.url=http://hostname:9000  
sonar.login=login  
sonar.password=password  
sonar.projectKey=projectKey:webJava  
sonar.modules=app  
app.sonar.projectBaseDir=web  
app.sonar.sources=app  
app.sonar.tests=test

sonar.analysis.mode=preview  
sonar.issuesReport.lightModeOnly=false

你是如何提供Java字节码进行分析的?你使用Maven吗?如果没有,你能否发布你的sonar-project.properties文件? - benzonico
请提供要翻译的文本内容。 - Librael
1个回答

9

为了使分析器能够检测到您正在使用Lombok并进行正确的排除,您需要通过sonar.java.libraries属性提供您使用的第三方库(即您的类路径)。


1
@benzonico 我正在使用Gradle构建项目,那么我应该在sonar.java.libraries属性中放什么? - David
你需要提供你的类路径,即你正在使用的库的路径。 - benzonico
sonar.java.libraries=/jenkins/jenkins-user-home/.m2/repository/org/projectlombok/lombok/1.16.20/lombok-1.16.20.jar - Barış Özdemir

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接