如何在 checkstyle 配置中添加异常

How to add exceptions in a checkstyle config

我有一个使用 Gradle 构建的 Java 项目,并使用默认 Google checkstyle.xml 的 checkstyle(来自项目网站)。

除其他外,它为 public 方法强制执行 Javadoc。我想为普通代码保留这条规则,但我不想为我的测试编写 javadoc。

如何为该规则添加例外,以便 checkstyle 忽略测试文件?

这可以分两步完成:

  1. 通过添加 SuppressionFilter 模块在 checkstyle.xml 中指定抑制文件。更具体地说,在 "Checker" 模块中添加以下代码:

    <module name="SuppressionFilter">
        <property name="file" value="config/checkstyle/suppressions.xml"/>
        <property name="optional" value="false"/>
    </module>
    

    其中 "config/checkstyle/suppressions.xml" 是从项目根目录到抑制文件的路径。

  2. 创建suppressions.xml如下:

    <?xml version="1.0"?>
    
    <!DOCTYPE suppressions PUBLIC
        "-//Puppy Crawl//DTD Suppressions 1.1//EN"
        "http://checkstyle.sourceforge.net/dtds/suppressions_1_1.dtd">
    
    <suppressions>
        <suppress checks="JavadocMethod"
            files=".*Test.java"/>
    </suppressions>
    

    告诉检查器不要对名称以 *Test.java.

  3. 结尾的文件应用 JavadocMethod 规则

注意:如果抑制文件未找到或无效,您可能会遇到如下错误:

Unable to create Root Module: config {/path/to/config/checkstyle/checkstyle.xml}, classpath {null}.

运行 $ gradle build --stacktrace 的构建被证明对于调试这个非常有用,在我的例子中。