add pmd rule sets and gradle config
Project: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/commit/6128a614 Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/tree/6128a614 Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/diff/6128a614 Branch: refs/heads/master Commit: 6128a61493951e3bc48cf2f2ff6fc2eab75a2ed3 Parents: e752e97 Author: Sagar <[email protected]> Authored: Fri Jun 10 22:46:28 2016 +0530 Committer: Sagar <[email protected]> Committed: Fri Jun 10 22:46:28 2016 +0530 ---------------------------------------------------------------------- config/quality/pmd/pmd-ruleset.xml | 40 +++++++++++++++++++++++++++++++++ config/quality/quality.gradle | 24 +++++++++++++++++++- 2 files changed, 63 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/6128a614/config/quality/pmd/pmd-ruleset.xml ---------------------------------------------------------------------- diff --git a/config/quality/pmd/pmd-ruleset.xml b/config/quality/pmd/pmd-ruleset.xml new file mode 100644 index 0000000..2d66bd6 --- /dev/null +++ b/config/quality/pmd/pmd-ruleset.xml @@ -0,0 +1,40 @@ +<?xml version="1.0"?> +<ruleset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="Android Application Rules" + xmlns="http://pmd.sf.net/ruleset/1.0.0" + xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd" + xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd"> + + <description>Custom ruleset for ribot Android application</description> + + <exclude-pattern>.*/R.java</exclude-pattern> + <exclude-pattern>.*/gen/.*</exclude-pattern> + + <rule ref="rulesets/java/android.xml" /> + <rule ref="rulesets/java/clone.xml" /> + <rule ref="rulesets/java/finalizers.xml" /> + <rule ref="rulesets/java/imports.xml"> + <!-- Espresso is designed this way !--> + <exclude name="TooManyStaticImports" /> + </rule> + <rule ref="rulesets/java/logging-java.xml"> + <!-- This rule wasn't working properly and given errors in every var call info --> + <exclude name="GuardLogStatementJavaUtil" /> + </rule> + <rule ref="rulesets/java/braces.xml"> + <!-- We allow single line if's without braces --> + <exclude name="IfStmtsMustUseBraces" /> + </rule> + <rule ref="rulesets/java/strings.xml" > + <!-- Exclude because causes problems with SQL Strings that usually require duplication --> + <exclude name="AvoidDuplicateLiterals"/> + </rule> + <rule ref="rulesets/java/basic.xml" /> + <rule ref="rulesets/java/naming.xml"> + <exclude name="AbstractNaming" /> + <exclude name="LongVariable" /> + <exclude name="ShortMethodName" /> + <exclude name="ShortVariable" /> + <exclude name="ShortClassName" /> + <exclude name="VariableNamingConventions" /> + </rule> +</ruleset> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/6128a614/config/quality/quality.gradle ---------------------------------------------------------------------- diff --git a/config/quality/quality.gradle b/config/quality/quality.gradle index 8883952..978277f 100644 --- a/config/quality/quality.gradle +++ b/config/quality/quality.gradle @@ -1,4 +1,5 @@ apply plugin: 'checkstyle' +apply plugin: 'pmd' dependencies { checkstyle 'com.puppycrawl.tools:checkstyle:6.5' @@ -7,7 +8,7 @@ dependencies { def qualityConfigDir = "$project.rootDir/config/quality"; def reportsDir = "$project.buildDir/reports" -check.dependsOn 'checkstyle' +check.dependsOn 'checkstyle', 'pmd' task checkstyle(type: Checkstyle, group: 'Verification', description: 'Runs code style checks') { configFile file("$qualityConfigDir/checkstyle/checkstyle-config.xml") @@ -23,4 +24,25 @@ task checkstyle(type: Checkstyle, group: 'Verification', description: 'Runs code } 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 "$reportsDir/pmd/pmd.xml" + } + html { + destination "$reportsDir/pmd/pmd.html" + } + } } \ No newline at end of file
