Maven Checkstyle:Check not working

匿名 (未验证) 提交于 2019-12-03 02:30:02

问题:

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 checkstlye:checkstlye 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 :

  1. configLocation for a custom checkstlye is being ignored and always default to Sun checkstlye.
  2. I am unable to run checkstlye:check. I get below error. What target should I run so that the checkstyle:check runs. Failed to execute goal org.apache.maven.plugins:maven-checkstyle-plugin:2.9.1:check (default-cli) on project zzz-web: You have 5950 Checkstyle violations
  3. Is the configuration setting right for failing the build if the number of violations crossess 7000 ?
  4. 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

回答1:

You have bound check goal of maven checkstyle plugin to compile phase. That being the case, you would need to run mvn compile for your configurations to be used. Running mvn 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 entries failOnViolation and failOnError since both of them are set to true. Removing these entries and running mvn compile should pass the build so long as the number of violations are less than 7000.



回答2:

1.configLocation for a custom checkstlye is being ignored and always default to Sun checkstlye.

For this please use below tag :>

<properties<checkstyle.config.location>properties/checkstyle.xml</checkstyle.config.location>  </properties> 

in your POM.xml of project on which your using checkstyle.this line will be on the top and below tag of pom.xml.

<version>0.0.1-SNAPSHOT</version> 


回答3:

googe_checks.xml has to be located in your project where pom.xml is present. mvn checkstyle:check

<properties>     <checkstyle.config.location>google_checks.xml</checkstyle.config.location>     <checkstyle.violationSeverity>warning</checkstyle.violationSeverity>     <checkstyle.consoleOutput>true</checkstyle.consoleOutput> </properties>  <build>     <pluginManagement>         <plugins>             <plugin>                 <groupId>org.apache.maven.plugins</groupId>                 <artifactId>maven-checkstyle-plugin</artifactId>                 <version>3.0.0</version>                 <dependencies>                     <dependency>                         <groupId>com.puppycrawl.tools</groupId>                         <artifactId>checkstyle</artifactId>                         <version>8.8</version>                     </dependency>                 </dependencies>                 <executions>                     <execution>                         <id>validate</id>                         <phase>validate</phase>`                         <properties>                             <checkstyle.config.location>google_checks.xml</checkstyle.config.location>                             <checkstyle.violationSeverity>warning</checkstyle.violationSeverity>                             <checkstyle.consoleOutput>true</checkstyle.consoleOutput>                         </properties>                          <build>                             <pluginManagement>                                 <plugins>                                     <plugin>                                         <groupId>org.apache.maven.plugins</groupId>                                         <artifactId>maven-checkstyle-plugin</artifactId>                                         <version>3.0.0</version>                                         <dependencies>                                             <dependency>                                                 <groupId>com.puppycrawl.tools</groupId>                                                 <artifactId>checkstyle</artifactId>                                                 <version>8.8</version>                                             </dependency>                                         </dependencies>                                         <executions>                                             <execution>                                                 <id>validate</id>                                                 <phase>validate</phase>                                                 <goals>                                                     <goal>check</goal>                                                 </goals>                                             </execution>                                         </executions>                                     </plugin>                                 </plugins>                             </pluginManagement>                         </build>                         </project>                         `                         <goals>                             <goal>check</goal>                         </goals>                     </execution>                 </executions>             </plugin>         </plugins>     </pluginManagement> </build> </project> 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!