| /** |
| * 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") |
| } |
| } |
| } |