Java 更改QUBE';s基于文件名的质量配置文件

Java 更改QUBE';s基于文件名的质量配置文件,java,sonarqube,Java,Sonarqube,很容易出现这样的用例:SonarQube规则对某些文件很重要,但对其他文件却毫无用处,我只举几个例子: “应该添加缺少的翻译”规则对于在各种消息中查找缺少的键非常有用。但是,每组属性文件总是有一个空的messages_en.properties(至少对我们来说,英语是默认语言环境)。对于这些文件,添加密钥是一个实际的bug 另一个例子是“字符串文本不应重复”:在普通Java文件中,重复的字符串会引入错误(因为您可能会更改其中一个而不是另一个)。在测试文件中,强制执行此代码会导致无法读取的代码,因

很容易出现这样的用例:SonarQube规则对某些文件很重要,但对其他文件却毫无用处,我只举几个例子:

“应该添加缺少的翻译”规则对于在各种消息中查找缺少的键非常有用。但是,每组属性文件总是有一个空的messages_en.properties(至少对我们来说,英语是默认语言环境)。对于这些文件,添加密钥是一个实际的bug

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

我可以很容易地继续讲述测试用例与“真实”Java类的区别。尽管测试代码应该具有相同的质量度量,但在实践中却是完全不同的

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

我已经放弃了一些琐碎的答案:

  • 完全删除规则(它们非常有用)
  • 修复规则(第一个示例甚至在代码中引入了bug)
  • 将测试标记为“无法修复”(太多了)
因此,我想我想根据项目(例如排除
org.acme.project.it
)或文件名(例如排除*Test.java)更改质量配置文件。或者可能只为某些文件名模式启用规则

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

您希望。排除允许您完全忽略某些文件,或者反过来忽略除指定文件集以外的所有文件。您可以为覆盖或复制设置排除。与您的问题最相关的是,您可以设置多种类型的问题排除