CheckStyle не отмечает отсутствующий JavaDoc в методах интерфейса - PullRequest
0 голосов
/ 08 марта 2019

Кто-нибудь знает, почему 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"/>

Это сообщит об отсутствии JavaDoc в реальном методе класса, но не в методах интерфейса.

Также попытался добавить это, не сработало:

<property name="tokens" value="INTERFACE_DEF"/>
<property name="tokens" value="INTERFACE_DEF, CLASS_DEF"/>

Похожий поток, из которого я получил это ((но не работает): checkstyle JavadocType только на интерфейсах

Любой способ принудительно проверить JavadocMethod Методы интерфейса?

Причина: Spring Data , библиотека JPA, основана на именах методов только для интерфейса, где реализация предоставляется за кулисами на основе @Query конфигураторов аннотаций.Таким образом, у нас нет собственных реализаций.Поэтому в этом случае нам нужно проверить и потребовать JavaDoc для методов интерфейса.

1 Ответ

1 голос
/ 08 марта 2019

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

Вот почему.Вы указываете, что необходим Javadoc, если количество строк равно 2 или больше.Интерфейсы не имеют количества строк, поэтому нарушений не наблюдается.

$ 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.
...