blob: ff49b6116c212cbc94c8ac4c54ba8c80cf354a45 [file] [log] [blame]
/**
* Set up Checkstyle, Findbugs and PMD to perform extensive code analysis.
*
* Gradle tasks added:
* - checkstyle
* - findbugs
* - pmd
*
* The three tasks above are added as dependencies of the check task so running check will
* run all of them.
*/
apply plugin: 'checkstyle'
apply plugin: 'findbugs'
apply plugin: 'pmd'
dependencies {
checkstyle 'com.puppycrawl.tools:checkstyle:6.11.1'
}
def qualityConfigDir = "$project.rootDir/config/quality";
def reportsDir = "$project.buildDir/reports"
check.dependsOn 'checkstyle', 'findbugs', 'pmd'
task checkstyle(type: Checkstyle, group: 'Verification', description: 'Runs code style checks') {
configFile file("$qualityConfigDir/checkstyle/checkstyle-config.xml")
source 'src'
include '**/*.java'
reports {
xml.enabled = true
xml {
destination file("$reportsDir/checkstyle/checkstyle.xml")
}
}
classpath = files( )
}
task findbugs(type: FindBugs,
group: 'Verification',
description: 'Inspect java bytecode for bugs',
dependsOn: ['compileDebugSources','compileReleaseSources']) {
ignoreFailures = false
effort = "max"
reportLevel = "high"
excludeFilter = new File("$qualityConfigDir/findbugs/android-exclude-filter.xml")
classes = files("$project.rootDir/app/build/intermediates/javac")
source 'src'
include '**/*.java'
exclude '**/gen/**'
reports {
xml.enabled = false
html.enabled = true
xml {
destination file("$reportsDir/findbugs/findbugs.xml")
}
html {
destination file("$reportsDir/findbugs/findbugs.html")
}
}
classpath = files()
}
task pmd(type: Pmd, group: 'Verification', description: 'Inspect sourcecode for bugs') {
ruleSetFiles = files("$qualityConfigDir/pmd/pmd-ruleset.xml")
ignoreFailures = false
ruleSets = []
source 'src'
include '**/*.java'
exclude '**/gen/**'
reports {
xml.enabled = true
html.enabled = true
xml {
destination file("$reportsDir/pmd/pmd.xml")
}
html {
destination file("$reportsDir/pmd/pmd.html")
}
}
}