[Android] Configuring checkstyle for your Android project

1.- app/build.gradle

apply plugin: 'com.android.application'
apply plugin: 'checkstyle' // <-- add this line

android {
    // ...
}
task checkstyle(type: Checkstyle) {
    configFile = rootProject.file('config/checkstyle.xml')

    source 'src'
    include '**/*.java'
    exclude '**/gen/**'

    classpath = files()
}

dependencies {
    //  ...
}

2.- Create a file and name it checkstyle.xml inside project_root/config


<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
 "-//Puppy Crawl//DTD Check Configuration 1.2//EN"
 "http://www.puppycrawl.com/dtds/configuration_1_2.dtd">


<!-- THIS CHECKSYTLE CONFIGURATION IS SIMILAR TO THE ONE USED BY SQUARE INC. IF YOU WANT TO
 CONFIGURE YOUR IDE TO USE THIS CHECKSTYLE TAKE A LOOK AT https://github.com/square/java-code-styles-->


<module name="Checker">
 <!--module name="NewlineAtEndOfFile"/-->
 <module name="FileLength"/>
 <module name="FileTabCharacter"/>

 <!-- Trailing spaces -->
 <module name="RegexpSingleline">
 <property name="format" value="\s+$"/>
 <property name="message" value="Line has trailing spaces."/>
 </module>

 <!-- For each spacing -->
 <module name="RegexpSingleline">
 <property name="format" value="^\s*for \(.*?([^ ]:|:[^ ])"/>
 <property name="message" value="Space needed around ':' character."/>
 </module>

 <module name="TreeWalker">

 <!-- Checks for Naming Conventions. -->
 <!-- See http://checkstyle.sf.net/config_naming.html -->
 <module name="MethodName"/>
 <module name="PackageName"/>
 <module name="ParameterName"/>
 <module name="TypeName"/>
 <module name="ConstantName"/>

 <!-- Checks for imports -->
 <!-- See http://checkstyle.sf.net/config_import.html -->
 <module name="AvoidStarImport"/>
 <module name="IllegalImport"/>
 <!-- defaults to sun.* packages -->
 <module name="RedundantImport"/>
 <module name="UnusedImports">
 <property name="processJavadoc" value="true"/>
 </module>

 <!-- Checks for Size Violations. -->
 <!-- See http://checkstyle.sf.net/config_sizes.html -->
 <module name="LineLength">
 <property name="max" value="120"/>
 </module>

 <!-- Checks for whitespace -->
 <!-- See http://checkstyle.sf.net/config_whitespace.html -->
 <module name="GenericWhitespace"/>
 <module name="EmptyForIteratorPad"/>
 <module name="MethodParamPad"/>
 <module name="NoWhitespaceAfter"/>
 <module name="NoWhitespaceBefore"/>
 <module name="OperatorWrap"/>
 <module name="ParenPad"/>
 <module name="TypecastParenPad"/>
 <module name="WhitespaceAfter"/>
 <module name="WhitespaceAround"/>

 <!-- Modifier Checks -->
 <!-- See http://checkstyle.sf.net/config_modifiers.html -->
 <module name="RedundantModifier"/>

 <!-- Checks for blocks. You know, those {}'s -->
 <!-- See http://checkstyle.sf.net/config_blocks.html -->
 <module name="LeftCurly"/>
 <module name="NeedBraces"/>
 <module name="RightCurly"/>

 <!-- Checks for common coding problems -->
 <!-- See http://checkstyle.sf.net/config_coding.html -->
 <module name="CovariantEquals"/>
 <module name="EmptyStatement"/>
 <module name="EqualsHashCode"/>
 <module name="IllegalInstantiation"/>
 <module name="MissingSwitchDefault"/>
 <module name="SimplifyBooleanExpression"/>
 <module name="SimplifyBooleanReturn"/>

 <!-- Miscellaneous other checks. -->
 <!-- See http://checkstyle.sf.net/config_misc.html -->
 <module name="UpperEll"/>
 </module>
</module>

3.- You can now execute the checkstyle from your terminal

./gradlew checkstyle
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s