2013-03-01 3 views
0

우리는 Sonar를 사용하여 코드를 분석하고 PMD, findbugs 및 checkstyle 규칙을 Sonar의 사용자 정의 품질 프로파일에 구성했습니다. PMD 규칙 코드 스타일의 순환 복잡성은 임계 값이이 규칙에 위배되는 경우 코드에서 위반 사항을 수집합니다. Sonar에는 프로젝트 대시 보드에 클래스, 메소드 및 파일을 기반으로 복잡성을 표시하는 Complexity 위젯이 있습니다. 이 Complexity 위젯은 PMD 규칙 엔진에 의해 정의 된 똑같은 규칙을 코드 스타일의 순환 복잡성을 계산하는 것으로 간주합니까? 아니면이 위젯이 복잡성을 계산하는 고유 한 방법을 가지고 있습니까? Sonar complexity 위젯은 PMD 규칙 엔진이보고 한 위반 사항을 사용하여 복잡성을 결정합니까?PMD에 의한 음파 복잡도 메트릭 값과 복잡도 리포터의 차이

이 질문을하는 이유는 두 가지 모두 복잡성 계산 방법이 다르면 하나의 방법 만 언급하고 유지하는 것이 가장 좋습니다.

답변

1

Sonar는 내부 Java 파서를 사용하여 독자적으로 순환 복잡도를 계산합니다. 이것은 복잡한 위젯에 표시되는 것입니다. 계산은 실제로 PMD가 수행하는 것과 다를 수 있습니다. 따라서 복잡성에 대한 PMD 규칙을 활성화하면 분명히 SONAR가 아니라 PMD가 수행 한 측정에 대한 트리거가됩니다.

FYI의 목표는 PMD 및 Checkstyle에서 찾을 수있는 대부분의 유용한 규칙 인 Sonar (자체 파서를 기반으로 함)에 점진적으로 구현하여 경험 한 것과 같은 주요 결과에 불일치가 없도록하는 것입니다. .