From b728cab15c72d9685dab2b8d45a90fa3015f4d90 Mon Sep 17 00:00:00 2001 From: Jan Vales <jan@jvales.net> Date: Sat, 26 Sep 2015 18:10:18 +0200 Subject: [PATCH] Added lint, checkstyle and findbugs reporting. --- app/build.gradle | 43 +++++++++- config/checkstyle/checkstyle.xml | 126 ++++++++++++++++++++++++++++ config/findbugs/findbugs-filter.xml | 10 +++ 3 files changed, 175 insertions(+), 4 deletions(-) create mode 100644 config/checkstyle/checkstyle.xml create mode 100644 config/findbugs/findbugs-filter.xml diff --git a/app/build.gradle b/app/build.gradle index 2694265..1595260 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,4 +1,8 @@ apply plugin: 'com.android.application' +apply plugin: 'checkstyle' +apply plugin: 'findbugs' + +check.dependsOn 'checkstyle', 'findbugs' android { compileSdkVersion 22 @@ -8,8 +12,8 @@ android { applicationId "org.somenet.android.helloworld2" minSdkVersion 19 targetSdkVersion 22 - versionCode 10 - versionName "2.1.2" + versionCode 12 + versionName "2.1.3a" } buildTypes { release { @@ -18,14 +22,45 @@ android { } } - if(new File("${System.properties['user.home']}/.android/release.gradle").exists()) { + if (new File("${System.properties['user.home']}/.android/release.gradle").exists()) { apply from: "${System.properties['user.home']}/.android/release.gradle"; - }else{ + } else { logger.warn('SigningConfig not found!') } + + lintOptions { + abortOnError false + } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:22.+' } + + +task checkstyle(type: Checkstyle) { + source 'src' + include '**/*.java' + exclude '**/gen/**' + classpath = files() + + configFile file("${project.rootDir}/config/checkstyle/checkstyle.xml") +} + +task findbugs(type: FindBugs) { + source 'src' + include '**/*.java' + exclude '**/gen/**' + classpath = files() + + excludeFilter file("${project.rootDir}/config/findbugs/findbugs-filter.xml") + classes = files("${project.rootDir}/app/build/intermediates/classes/") + + ignoreFailures = true + + reports { + xml.enabled = true + html.enabled = false + } +} diff --git a/config/checkstyle/checkstyle.xml b/config/checkstyle/checkstyle.xml new file mode 100644 index 0000000..05d3c45 --- /dev/null +++ b/config/checkstyle/checkstyle.xml @@ -0,0 +1,126 @@ +<?xml version="1.0"?> +<!DOCTYPE module PUBLIC + "-//Puppy Crawl//DTD Check Configuration 1.2//EN" + "http://www.puppycrawl.com/dtds/configuration_1_2.dtd"> + + +<!-- + Checkstyle-Configuration: Android checkstyle by Enea + Description: none +--> +<module name="Checker"> + <property name="severity" value="warning"></property> + <module name="TreeWalker"> + <property name="tabWidth" value="4"></property> + <module name="JavadocMethod"> + <property name="logLoadErrors" value="true"></property> + <property name="suppressLoadErrors" value="true"></property> + </module> + <module name="JavadocType"></module> + <module name="JavadocVariable"></module> + <module name="JavadocStyle"></module> + <module name="ConstantName"></module> + <module name="LocalFinalVariableName"></module> + <module name="LocalVariableName"></module> + <module name="MemberName"> + <metadata name="net.sf.eclipsecs.core.comment" value="only public starts without m"></metadata> + <property name="applyToProtected" value="false"></property> + <property name="applyToPrivate" value="false"></property> + </module> + <module name="MethodName"></module> + <module name="PackageName"></module> + <module name="ParameterName"></module> + <module name="StaticVariableName"> + <metadata name="net.sf.eclipsecs.core.comment" value="starts with 's'"></metadata> + <property name="format" value="^[s][a-zA-Z0-9]*$"></property> + </module> + <module name="TypeName"></module> + <module name="AvoidStarImport"></module> + <module name="IllegalImport"></module> + <module name="RedundantImport"></module> + <module name="UnusedImports"></module> + <module name="LineLength"> + <property name="severity" value="ignore"></property> + <metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"></metadata> + </module> + <module name="MethodLength"></module> + <module name="ParameterNumber"></module> + <module name="EmptyForIteratorPad"></module> + <module name="MethodParamPad"></module> + <module name="NoWhitespaceAfter"> + <property name="tokens" value="BNOT,DEC,DOT,INC,LNOT,UNARY_MINUS,UNARY_PLUS"></property> + </module> + <module name="NoWhitespaceBefore"></module> + <module name="OperatorWrap"></module> + <module name="ParenPad"></module> + <module name="TypecastParenPad"></module> + <module name="WhitespaceAfter"></module> + <module name="WhitespaceAround"></module> + <module name="ModifierOrder"></module> + <module name="RedundantModifier"></module> + <module name="AvoidNestedBlocks"></module> + <module name="EmptyBlock"></module> + <module name="LeftCurly"></module> + <module name="NeedBraces"></module> + <module name="RightCurly"></module> + <module name="AvoidInlineConditionals"></module> + <module name="EmptyStatement"></module> + <module name="EqualsHashCode"></module> + <module name="HiddenField"></module> + <module name="IllegalInstantiation"></module> + <module name="InnerAssignment"></module> + <module name="MagicNumber"></module> + <module name="MissingSwitchDefault"></module> + <module name="RedundantThrows"> + <property name="logLoadErrors" value="true"></property> + <property name="suppressLoadErrors" value="true"></property> + </module> + <module name="SimplifyBooleanExpression"></module> + <module name="SimplifyBooleanReturn"></module> + <module name="DesignForExtension"> + <property name="severity" value="ignore"></property> + <metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"></metadata> + </module> + <module name="FinalClass"></module> + <module name="HideUtilityClassConstructor"></module> + <module name="InterfaceIsType"></module> + <module name="VisibilityModifier"></module> + <module name="ArrayTypeStyle"></module> + <module name="FinalParameters"> + <property name="severity" value="ignore"></property> + <metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"></metadata> + </module> + <module name="TodoComment"> + <property name="severity" value="ignore"></property> + <metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"></metadata> + </module> + <module name="UpperEll"></module> + <module name="MethodLength"> + <property name="max" value="40"></property> + </module> + <module name="MemberName"> + <metadata name="net.sf.eclipsecs.core.comment" value="non public members should start with m"></metadata> + <property name="applyToPublic" value="false"></property> + <property name="format" value="^[m][a-zA-Z0-9]*$"></property> + </module> + <module name="LineLength"> + <property name="max" value="100"></property> + </module> + </module> + <module name="JavadocPackage"></module> + <module name="NewlineAtEndOfFile"> + <property name="severity" value="ignore"></property> + <metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"></metadata> + </module> + <module name="Translation"></module> + <module name="FileTabCharacter"> + <property name="severity" value="ignore"></property> + <metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"></metadata> + </module> + <module name="RegexpSingleline"> + <property name="severity" value="ignore"></property> + <property name="format" value="\s+$"></property> + <property name="message" value="Line has trailing spaces."></property> + <metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"></metadata> + </module> +</module> diff --git a/config/findbugs/findbugs-filter.xml b/config/findbugs/findbugs-filter.xml new file mode 100644 index 0000000..8b034a5 --- /dev/null +++ b/config/findbugs/findbugs-filter.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8"?> +<FindBugsFilter> + <!-- http://stackoverflow.com/questions/7568579/eclipsefindbugs-exclude-filter-files-doesnt-work --> + <Match> + <Class name="~.*\.R\$.*"/> + </Match> + <Match> + <Class name="~.*\.Manifest\$.*"/> + </Match> +</FindBugsFilter> -- 2.43.0