pmdMain {
reports {
xml.destination = file("${pmd.reportsDir}/pmd.xml")
html.enabled = false
xml.enabled = true
}
}
3. findbugs
findbugs는 정형적인 버그를 발견할 수 있는 tool입니다. findbugs를 이용하면 버그가 발생할 수 있는 상황을 확인하는 것이 가능합니다. type의 변환시에 값의 크기가 작아서 오작동을 일으킨다던지, 무한 loop를 돌 수 있는 pattern을 찾아낼 수 있는 방법들을 제공합니다.
findbugs는 findbugs plugin을 설치해서 사용합니다.
apply plugin: 'findbugs'
findbugsMain {
reports {
xml.enabled = true
html.enabled = false
xml.destination = file("${findbugs.reportsDir}/findbugs.xml")
}
}
ext {
checkStylePath = file('config/checkstyle.xml')
reportPath = file('output/report');
reportPathA = reportPath.absolutePath.toString()
}
if(!ext.reportPath.exists()) { // 폴더가 없는 경우에 신규 생성
ext.reportPath.mkdir()
}
subprojects {
apply plugin: 'java'
apply plugin: 'checkstyle'
apply plugin: 'pmd'
apply plugin: 'findbugs'
sourceCompatibility = 1.7
targetCompatibility = 1.7
checkstyle {
configFile = rootProject.ext.checkStylePath
ignoreFailures = true
}
pmd {
ignoreFailures = true
}
findbugs {
ignoreFailures = true
}
findbugsMain {
reports {
xml.enabled = true
html.enabled = false
xml.destination = file("${rootProject.ext.reportPathA}/findbug/${project.name}.xml")
}
}
pmdMain {
reports {
xml.destination = file("${rootProject.ext.reportPathA}/pmd/${project. name}.xml")
html.enabled = false
}
}
checkstyleMain {
reports {
xml.enabled = true
xml.destination = file("${rootProject.ext.reportPathA}/checkstyle/ ${project.name}.xml")
// html.enabled = false
}
}
}
위와 같은 build script를 이용하면 다음과 같이 한개의 폴더 안에 잘 정리된 코드 분석 결과를 얻어낼 수 있습니다.