根据文件名更改SonarQube的质量配置文件

时间:2018-01-31 10:44:29

标签: java sonarqube

如果SonarQube规则对某些文件很重要,但对其他文件来说完全无用,那么我很容易使用这些用例,我只举几个例子:

规则"应添加缺少的翻译" 非常适合在各种 messages_xx.properties 中查找丢失的密钥。但是,每组属性文件始终都有一个空的 messages_en.properties (至少对于我们来说,英语是默认语言环境)。对于这个文件,它是添加密钥的实际错误。

另一个例子是"字符串文字不应该重复" :在普通的Java文件中,重复的字符串会引入错误(因为你可能会改变一个而不是另一个)。在测试文件中,强制执行此代码会导致代码无法读取,因为重复代码通常是在测试对象的初始化和/或测试失败时打印出来的消息。

我可以轻松地继续讨论测试用例与"真实" Java类。尽管测试代码应该具有相同的质量测量值,但在实践中它们却完全不同。

现在的问题是:如何在Sonar中处理这些规则?

我已经丢弃的琐碎答案:

  • 完全删除规则(它们非常有用)
  • 修复规则(第一个例子甚至在代码中引入了错误)
  • 将测试标记为won't fix(它太多了)

所以我想我想根据项目(例如排除org.acme.project.it)或文件名(例如,排除 * Test.java )更改质量配置文件。或者也许只为某些文件名模式启用规则。

处理仅适用于特定文件组的SonarQube规则的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

你想要set up some exclusions。排除允许您完全忽略某些文件,或相反地忽略除指定文件集之外的所有文件。您可以为覆盖范围或重复设置排除项。对您的问题最有针对性的是,您可以设置多种问题排除。