2013-03-01 89 views
0

我们使用Sonar分析我们的代码,并在Sonar的自定义质量配置文件中配置PMD,findbugs和checkstyle规则。 PMD规则代码样式圈复杂度在我们的代码中收集违规,如果阈值违反了此规则。 Sonar在Project dashboard中还有一个Complexity小部件,它根据类,方法和文件显示复杂性。这个Complexity小部件是否考虑了由PMD规则引擎定义的用于计算代码风格圈复杂度的相同规则,还是这个小部件有自己的计算复杂度的方法? Sonar复杂性小部件是否使用PMD规则引擎报告的违规行为来确定复杂性?PMD声纳复杂度度量值与复杂性记录之间的差异

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

回答

1

Sonar使用我们的内部Java解析器自行计算圈复杂度。这是在复杂度小部件中显示的内容。计算的确可能与PMD的不同。因此,如果激活关于复杂性的PMD规则,显然这将触发PMD完成的措施,而不是Sonar。我们的目标是逐步在Sonar(基于我们自己的内部解析器)中实施大多数可在PMD和Checkstyle中找到的有用规则,以便在您的主要结果中不存在任何差异。