I have been working on trying to get Checkstyle working in Maven in the Eclipse Indigo IDE for a while. Finally, I thought I will ask for some expert advise on this.
I am using Eclipse Indigo and trying to configure Checkstyle to run in Maven.
Below is a snippet of my pom.xml. Only checkstyle:checkstyle
is working and creating the reports.
<profile>
<id>checkstyle-profile</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>2.9.1</version>
<configuration>
<includeTestSourceDirectory>true</includeTestSourceDirectory>
<configLocation>${basedir}/src/main/resources/maven_checks.xml</configLocation>
</configuration>
<executions>
<execution>
<id>checkstyle-check</id>
<goals>
<goal>check</goal>
</goals>
<phase>compile</phase> <!-- Default is "verify" -->
<configuration>
<violationSeverity>error</violationSeverity>
<maxAllowedViolations>7000</maxAllowedViolations>
<failOnViolation>true</failOnViolation>
<failsOnError>true</failsOnError>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>2.9.1</version>
<configuration>
<configLocation>${basedir}/src/main/resources/maven_checks.xml</configLocation>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jxr-plugin</artifactId>
<version>2.3</version>
</plugin>
</plugins>
</reporting>
Some of the things that are not working are:
- configLocation for a custom checkstlye is being ignored and always default to Sun checkstlye.
- I am unable to run
checkstlye:check
. I get below error. What target should I run so that thecheckstyle:check
runs. Failed to execute goalorg.apache.maven.plugins:maven-checkstyle-plugin:2.9.1:check
(default-cli) on project zzz-web: You have 5950 Checkstyle violations - Is the configuration setting right for failing the build if the number of violations crosses 7000?
- The Checkstyle report is unable to cross reference the Java code from the report. So for example, if I try to drill down from the package to the Java classes and then click on line number of the violation, it does not take me to the Java file. Maybe I have not configured the jxr plugin correctly.
Hoping for a quick response.
Thanks in advance. Varma
For this please use below tag:
in your POM.xml of project on which your using checkstyle.this line will be on the top and below tag of pom.xml.
googe_checks.xml has to be located in your project where pom.xml is present. mvn checkstyle:check
You have bound
check
goal ofmaven checkstyle plugin
tocompile
phase. That being the case, you would need to runmvn compile
for your configurations to be used. Runningmvn checkstyle:check
will use default configurations. This looks like the most likely case for items 1 and 2 above.Even if you were to run
mvn compile
the above configuration will still fail the build on account of the two configuration entriesfailOnViolation
andfailOnError
since both of them are set totrue
. Removing these entries and runningmvn compile
should pass the build so long as the number of violations are less than7000
.