You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 23:36:01