Checkstyle is a plugin to help programmers write Java code that adheres to a coding standard. It automates the process of checking Java code to spare humans of this task and make sure follow systematic way and programming style.
Checkstyle is highly configurable and can be made to support almost any coding standard. An example configuration file is supplied supporting the Sun Code Conventions. As well, other sample configuration files are supplied for other well known conventions.
Add plugin information (inside plugins tag) to pom.xml for the project wise. Otherwise if have common parent, can add it there itself, so that it will be shared to sub modules which are inclued in parent..
<plugin> <artifactId>maven-checkstyle-plugin</artifactId> <configuration> <includeTests>true</includeTests> <rulesets> <ruleset>${checkstyle-config-url}</ruleset> </rulesets> <minimumTokens>100</minimumTokens> <targetJdk>${targetJdk}</targetJdk> <failOnViolation>true</failOnViolation> </configuration> <executions> <execution> <phase>test</phase> <goals> <goal>check</goal> </goals> </execution> </executions> </plugin>
If you want to exclude test cases from checkstyle violations remove below line from above setup
<includeTests>true</includeTests>
If you don't want to see any failure on build even though violations reported by checkstyle, make below property as false
<failOnViolation>false</failOnViolation>
Add the below property to pom.xml, which includes custom rules. If we don't declare ruleset for checkstyle, default rules will be executed which are there inside plugin.
<properties> <checkstyle-config-url> C:/rules/checkstyle/2.0/checkstyle-2.0.xml </checkstyle-config-url> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties>
Do maven clean install. If you have any checkstyle vioaltions, build will fail.
After doing maven install. If we have any Checkstyle errors, build will fail. Goto the below locations will get the details about Checkstyle violations for the project.
${workspacelocation}\${Projectlocation}\target\checkstyle.xml (or) ${workspacelocation}\${Projectlocation}\target\site\checkstyle.html