SonarQube扫描仪 - 禁用特定文件中的重复计算

时间:2018-02-05 21:04:37

标签: java sonarqube sonarqube-scan

我有一个包含生成和未生成文件的目录。生成或未生成的文件都没有文件名标识符(例如* Generated.java)。我需要声纳来计算非生成文件中的重复,但不会生成生成的文件中的重复。出于实际业务原因,我无法重组或重命名这些文件。

  • 我多次查看了Narrowing the Focus,但找不到办法来做我想要的事。
  • 我也尝试过使用Ignore Issues,但这并不会忽略重复,只有声纳“问题”。
  • 理想情况下,我想为我的代码生成器提供一种方法,让声纳知道该文件应该被忽略仅用于重复。也就是说,该文件仍应包含在分析中以解决任何问题,但不会添加到代码重复总计中。 (这将为我提供可维护的解决方案,而不是必须手动排除当前和未来的所有非生成文件)。

我有一个解决方案吗? Sonar似乎没有任何内置功能。如果没有,是否有解决办法?

如果有任何其他需要的信息,请告诉我。

谢谢。

2 个答案:

答案 0 :(得分:0)

您始终可以在项目的根目录“ sonar-project.properties”中创建声纳配置文件,并将该文件添加到重复项排除列表中,例如:

sonar.cpd.exclusions=src/main/java/com/%FileToBeExcluded%.java

有关更多信息:https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/

答案 1 :(得分:-1)

至少使用声纳版本7.5(这是我测试过的唯一版本)才有可能。跟随documentation之后(现在)说

  

忽略代码覆盖率

     

您可以防止单元测试考虑某些文件进行代码覆盖。   为此,请转到“管理”>“常规设置”>“分析范围”>“代码覆盖率”,然后设置“覆盖率排除项”属性。

对我来说,添加带有src/debug.hpp的条目使其远离复制列表(它包含多个生成的1到N个参数模板函数,以支持debug("string")debug("string", var)等)。