PMD复杂度度量值与PMD复杂度报告器之间的差异

时间:2013-03-01 08:44:41

标签: sonarqube

我们正在使用Sonar分析我们的代码,并在Sonar的自定义质量配置文件中配置PMD,findbugs和checkstyle规则。如果违反此规则的阈值,则PMD规则代码样式圈复杂度会收集我们代码中的违规行为。 Sonar还在Project仪表板中有一个Complexity小部件,它根据类,方法和文件显示复杂性。此Complexity小部件是否考虑PMD规则引擎定义的相同规则来计算代码样式的圈复杂度,或者此小部件是否有自己的计算复杂性的方法? Sonar复杂小部件是否使用PMD规则引擎报告的违规来确定复杂性?

提出这个问题的原因是,如果两者都有不同的计算复杂度的方法,那么我们只想提到一种方法,而且哪种方法最好保留。

1 个答案:

答案 0 :(得分:1)

Sonar使用我们的内部Java解析器自行计算圈复杂度。这是复杂小部件中显示的内容。计算可能确实与PMD不同。因此,如果你激活关于复杂性的PMD规则,显然这将触发PMD所做的措施,而不是Sonar。

仅供参考,我们的目标是在Sonar(基于我们自己的内部解析器)中逐步实现PMD和Checkstyle中可以找到的大多数有用规则,这样主要结果就像您所经历的那样没有差异。