2013-03-01 76 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中找到的有用規則,以便在您的主要結果中不存在任何差異。