1. 环境要求
a) CheckStyle Plugin 3.0.0,默认使用的checkStyle版本为:6.18
b) Maven 3.0以上
c) JDK 1.7以上
2. 使用
主要说的是自定义checkStyle.xml文件,默认使用的是sun_checkstyle.xml。
a) Goals 介绍
Goal | 生成报告 | 描述 |
checkstyle:check | 否 | 执行检查分析并向控制台输出违规或违规次数,会使构建失败。 |
checkstyle:checkstyle | 是 | 执行检查分析并生成HTML检查报告。 |
checkstyle:checkstyle-aggregate | 是 | 执行检查分析并生成HTML检查报告以及汇总信息。 |
checkstyle:help | 否 | 帮助。mvn checkstyle:help -Ddetail=true -Dgoal=<goal-name> |
例如:mvncheckstyle:help –Ddetail=true –Dgoal=check,则会将Goal check下的详细信息输出到控制台,可用于查看详细参数等内容。
b) 在POM.xml中加入以下配置:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>validate</id>
<phase>validate</phase>
<configuration>
<configLocation>checkStyle.xml</configLocation>
<encoding>UTF-8</encoding>
<consoleOutput>true</consoleOutput>
<failsOnError>true</failsOnError>
<includeTestSourceDirectory>true</includeTestSourceDirectory>
</configuration>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
在execution 中指定的配置文件只有在当指定阶段时才会使用,如果想默认全部使用自定义的配置信息,可以在executions外配置,例如:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<configLocation>checkStyle.xml</configLocation>
<encoding>UTF-8</encoding>
</configuration>
<executions>
<execution>
<id>validate</id>
<phase>validate</phase>
<configuration>
<consoleOutput>true</consoleOutput>
<failsOnError>true</failsOnError>
<includeTestSourceDirectory>true</includeTestSourceDirectory>
</configuration>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
c) 将checkStyle.xml文件配置好即可,使用maven 构建时则会进行检查。也可以直接使用mvn checkstyle:check进行检查或者使用mvn checkstyle:checkstyle检查并生成报告。
3. 升级checkstyle版本
<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>...升级的版本...</version>
</dependency>
</dependencies>
</plugin>