如何配置Maven Checkstyle插件仅检查src/test目录文件
解决Maven Checkstyle仅检查src/test目录的问题
你当前的配置里,includeTestSourceDirectory=true是让插件同时检查测试源码目录,但默认includeMainSourceDirectory是true,所以主源码目录(src/main)还是会被检查。用excludeFiles没生效,是因为这个参数的路径是相对于源码目录而非项目根目录,src/main/**/*.java这种写法不匹配插件的路径规则。
最简单的解决方法是直接关闭主源码目录的检查,修改插件配置如下:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-checkstyle-plugin</artifactId> <version>3.6.0</version> <executions> <execution> <phase>validate</phase> <goals> <goal>check</goal> </goals> <configuration> <configLocation>checkstyle.xml</configLocation> <includeMainSourceDirectory>false</includeMainSourceDirectory> <!-- 关闭主目录检查 --> <includeTestSourceDirectory>true</includeTestSourceDirectory> <!-- 开启测试目录检查 --> <failOnViolation>true</failOnViolation> </configuration> </execution> </executions> </plugin>
如果偏好通过指定包含范围来实现,也可以用includes配置仅匹配测试目录文件,效果一致:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-checkstyle-plugin</artifactId> <version>3.6.0</version> <executions> <execution> <phase>validate</phase> <goals> <goal>check</goal> </goals> <configuration> <configLocation>checkstyle.xml</configLocation> <includeTestSourceDirectory>true</includeTestSourceDirectory> <includes>**/test/**/*.java</includes> <!-- 仅匹配测试目录下的Java文件 --> <failOnViolation>true</failOnViolation> </configuration> </execution> </executions> </plugin>
修改后执行mvn clean install checkstyle:check,就只会检查src/test目录下的Java文件了。
内容的提问来源于stack exchange,提问作者jarwin
相关产品推荐
相关产品推荐

