我正在处理这个项目,开发人员正在尝试编写易于理解的代码,因此在很多地方使用注释是没有意义的。我们有一个 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>
Run Code Online (Sandbox Code Playgroud)
但它不适用于“common-java:InsufficientCommentDensity”规则。为什么?在我们的案例中,有没有办法忽略这条规则?
SonarQube 版本为 6.7(内部版本 33306)
Sonar Maven 插件版本为 3.4.0.905
我对此进行了很多测试,最后发现从扫描仪端(pom、命令行等)设置通用规则(任何以“common-xxxx”开头的规则)将被忽略并且不起作用。特定于语言的规则可以作为命令行参数传递,这就是为什么“squid:S2698”规则被正确忽略的原因。这是 SonarQube JIRA 板上的问题链接,它说它“不会被修复”。
\n\nhttps://jira.sonarsource.com/browse/SONAR-8230
\n\n您唯一的选择是从 UI 中设置问题排除。以下是从 U 进行设置的步骤。
\n\n如果这是您想要忽略的常见规则,请确保您拥有项目的管理员权限。在项目仪表板上,您应该看到管理选项卡:
\n\n\n\n单击管理\xc2\xa0\xe2\x86\x92 常规设置
单击左侧的分析范围
现在设置以下属性:
保存并再次运行扫描。
\n| 归档时间: |
|
| 查看次数: |
1604 次 |
| 最近记录: |