Tools/BuildTools
Gradle: 코드정적분석을 위한 checkstyle, pmd 설정하기
허니몬
2015. 5. 15. 14:22
코드의 품질을 높이기 위해서 많이 사용되는 것이 코드에 대한 정적분석을 통해서 코드의 품질을 평가하는 것이다.
코드정적분석에 사용되는 도구로는 checkstyle, findbugs, PMD 등 이 있다. 그레들gradle에 checkstyle, PM 를 추가하는 방법을 설명한다.
1. checkstyle
1.1. 사용방법
1.1.1. gradle's checkstyle 플러그인 추가
build.gradle 파일에 플러그인을 추가한다.
1.1.2. checkstyle.xml 작성
1.1.3. build.gradle 파일에 checkstyle 태스크를 정의한다.
1.1.4. checkstyle 실행
checkstyle 플러그인을 추가하면 그레들의 check 태스크를 수정하여 checkstyle 의 checkstyleMain, checkstyleTest 들을 실행시킨다.
1.2. 태스크Tasks
Task name | Depends on | Type | Description |
---|---|---|---|
checkstyleMain | classes | Checkstyle | Runs Checkstyle against the production Java source files. |
checkstyleTest | testClasses | Checkstyle | Runs Checkstyle against the test Java source files. |
checkstyleSourceSet | sourceSetClasses | Checkstyle | Runs Checkstyle against the given source set's Java source files. |
1.3. checkstyle.xml 기본구조
2. PMD
2.1. 사용방법
2.1.1. gradle's pmd 플러그인 추가
build.gradle 파일에 플러그인을 추가한다.
2.1.2. pmd 태스크의 속성을 정의한다.
2.1.3. 실행
PMD 플러그인이 check 태스크에 의존성을 추가한다.
2.2. 태스크Tasks
태스크명 | 의존 | 유형 | 설명 |
---|---|---|---|
pmdMain | - | Pmd | 출시 소스파일을 대상으로 PMD 실행 |
pmdTest | - | Pmd | 테스트 소스파일을 대상으로 PMD 실행 |
pmdSourceSet | - | Pmd | 지정된 소스셋SourceSet을 대상으로 PMD 실행 |
3. 정리
checkstyle과 pmd 에서 생성한 XML 보고서는 JENKINS에서 사용하기 위한 분석데이터로 사용된다.
JENKINS에서 checkstyle, pmd 플러그인을 설치한 후 report.xml 경로를 지정한 후
빌드가 정상적으로 진행되면서 분석문서가 생기면 다음과 같은 항목들이 왼쪽 메뉴에 추가가 되고,
각각의 결과를 확인할 수 있다.