0

Sonar を使用して、Sonar のカスタム品質プロファイルでコードと構成された PMD、findbugs、checkstyle ルールを分析しています。PMD ルール コード スタイルの循環的複雑度は、このルールのしきい値に違反した場合、コード内の違反を収集します。Sonar のプロジェクト ダッシュボードには、クラス、メソッド、およびファイルに基づいて複雑性を表示する複雑性ウィジェットもあります。この複雑度ウィジェットは、コード スタイルの循環的複雑度を計算するために PMD ルール エンジンによって定義されたものと同じルールを考慮しますか?それとも、このウィジェットには複雑さを計算する独自の方法がありますか? Sonar 複雑度ウィジェットは、複雑さを判断する際に PMD ルール エンジンによって報告された違反を使用しますか?

この質問をする理由は、両方が複雑さを計算する異なるアプローチを持っている場合、1 つの方法だけを参照し、どちらを維持するのが最適かを示すためです。

4

1 に答える 1

1

Sonar は、内部 Java パーサーを使用して循環的複雑度を独自に計算します。これは、複雑さのウィジェットに表示されるものです。実際、計算は PMD が行うものとは異なる場合があります。したがって、複雑性に関する PMD ルールをアクティブにすると、明らかに、これは Sonar ではなく PMD によって行われる対策に対してトリガーになります。

参考までに、私たちの目標は、PMD と Checkstyle で見つけることができるほとんどの有用なルールを Sonar (独自の内部パーサーに基づいて) に徐々に実装することです。これにより、経験したような主な結果に矛盾が生じません。

于 2013-03-11T12:44:50.963 に答える