CheckStyle 不会标记接口方法上缺少 JavaDoc

gen*_* b. 6 java interface checkstyle

有谁知道为什么 CheckStyle 不标记接口方法上缺少 JavaDoc,而只标记实际实现方法?

假设我有以下内容,

<module name="JavadocMethod">
    <property name="scope" value="public"/>
    <property name="allowMissingParamTags" value="true"/>
    <property name="allowMissingThrowsTags" value="true"/>
    <property name="allowMissingReturnTag" value="true"/>
    <property name="minLineCount" value="2"/>
    <property name="allowedAnnotations" value="Override, Test"/>
    <property name="allowThrowsTagsForSubclasses" value="true"/>
Run Code Online (Sandbox Code Playgroud)

这将报告实际类方法中缺少 JavaDoc,但接口方法中不会报告。

也尝试添加这个,但没有用:

<property name="tokens" value="INTERFACE_DEF"/>
<property name="tokens" value="INTERFACE_DEF, CLASS_DEF"/>
Run Code Online (Sandbox Code Playgroud)

我从中得到的类似线程(但不起作用):checkstyle JavadocType only on faces

有什么方法可以强制JavadocMethod检查接口方法吗?

原因:Spring Data(JPA 库)基于仅接口方法名称,其中基于@Query注释配置器在幕后提供实现。因此我们没有自己的实现。因此,在这种情况下,我们需要检查并要求接口方法上的 JavaDoc。

rve*_*ach 6

<property name="minLineCount" value="2"/>

这就是为什么。如果行数为 2 或更多,则指定需要 javadoc。接口没有任何行数,因此您不会遇到任何违规。

$ cat TestClass.java
public interface TestInterface {
    void method();
}

$ cat TestConfig.xml
<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
          "-//Puppy Crawl//DTD Check Configuration 1.3//EN"
          "https://checkstyle.org/dtds/configuration_1_3.dtd">

<module name="Checker">
    <property name="charset" value="UTF-8"/>

    <module name="TreeWalker">
<module name="JavadocMethod">
    <property name="scope" value="public"/>
    <property name="allowMissingParamTags" value="true"/>
    <property name="allowMissingThrowsTags" value="true"/>
    <property name="allowMissingReturnTag" value="true"/>
    <property name="allowedAnnotations" value="Override, Test"/>
    <property name="allowThrowsTagsForSubclasses" value="true"/>
</module>
    </module>
</module>

$ java -jar checkstyle-8.18-all.jar -c TestConfig.xml TestClass.java
Starting audit...
[ERROR] TestClass.java:2:5: Missing a Javadoc comment. [JavadocMethod]
Audit done.
Checkstyle ends with 1 errors.
Run Code Online (Sandbox Code Playgroud)