有没有办法忽略整个项目的Sonar问题“ common-java:InsufficientCommentDensity”?

时间:2018-10-19 15:42:41

标签: sonarqube

我正在研究项目,开发人员正在尝试编写易于理解的代码,因此在很多地方都没有使用注释的意义。我们有一个SonarQube,可在其他项目中使用它,我们无法对其进行配置。我们所能做的就是在项目的POM文件中配置Sonar。 SonarQube抱怨说,我们的代码中没有规则“ common-java:InsufficientCommentDensity” 的注释。我知道,我们可以使用

这样的sonar.issue.ignore.multicriteria属性忽略某些规则
<sonar.issue.ignore.multicriteria>junit.assertions.include.messages</sonar.issue.ignore.multicriteria>
<sonar.issue.ignore.multicriteria.junit.assertions.include.messages.ruleKey>squid:S2698</sonar.issue.ignore.multicriteria.junit.assertions.include.messages.ruleKey>
<sonar.issue.ignore.multicriteria.junit.assertions.include.messages.resourceKey>**/*.java</sonar.issue.ignore.multicriteria.junit.assertions.include.messages.resourceKey>

,但不适用于“ common-java:InsufficientCommentDensity”规则。 为什么?在我们的案例中,有没有办法忽略此规则?

SonarQube版本为6.7(内部版本33306)

Sonar Maven插件版本为3.4.0.905

1 个答案:

答案 0 :(得分:2)

我对此进行了很多测试,最后发现从扫描仪端(pom,命令行等)设置通用规则(以“ common-xxxx”开头的任何内容)将被忽略并且不会起作用。可以将特定于语言的规则作为命令行参数传递,这就是“ squid:S2698”规则被正确忽略的原因。这是SonarQube JIRA板上的问题链接,它说“不会得到解决”。

https://jira.sonarsource.com/browse/SONAR-8230

您唯一的选择是从UI设置问题排除。这是从U进行设置的步骤。

如果这是您要忽略的常见规则,请确保您对项目具有管理员权限。在项目仪表板上,您应该看到管理选项卡:

enter image description here

  1. 单击“管理”→“常规设​​置”

  2. 单击左侧的分析范围

  3. 现在设置以下属性:

enter image description here

保存并再次运行扫描。