我正在研究项目,开发人员正在尝试编写易于理解的代码,因此在很多地方都没有使用注释的意义。我们有一个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
答案 0 :(得分:2)
我对此进行了很多测试,最后发现从扫描仪端(pom,命令行等)设置通用规则(以“ common-xxxx”开头的任何内容)将被忽略并且不会起作用。可以将特定于语言的规则作为命令行参数传递,这就是“ squid:S2698”规则被正确忽略的原因。这是SonarQube JIRA板上的问题链接,它说“不会得到解决”。
https://jira.sonarsource.com/browse/SONAR-8230
您唯一的选择是从UI设置问题排除。这是从U进行设置的步骤。
如果这是您要忽略的常见规则,请确保您对项目具有管理员权限。在项目仪表板上,您应该看到管理选项卡:
单击“管理”→“常规设置”
单击左侧的分析范围
现在设置以下属性:
保存并再次运行扫描。