只在classesinterfacesenums上检查样式JavadocType。

问题描述 投票:0回答:1

我试图配置checkstyle规则,它将验证类、接口和枚举,以强制要求使用下面的配置的javadocs,但它们被反映出来,即尽管我没有提供任何类级的java docs,但检查样式仍然被通过,而不是给出缺少java docs的错误。

<module name="JavadocStyle">
    <property name = "checkEmptyJavadoc" value="true"/>
    <property name ="checkFirstSentence" value="false"/>
    <property name="tokens" value="CLASS_DEF, ENUM_DEF, INTERFACE_DEF, METHOD_DEF"/>

但它们都被反映出来了,也就是说,即使我没有提供任何类级的java docs,检查样式仍然被通过,而不是给出一个关于缺少java docs的错误。

任何帮助将是感激的。

java maven-plugin checkstyle maven-checkstyle-plugin
1个回答
0
投票

这将验证类、接口和枚举来强制执行javadocs。

首先,我建议你不要使用 JavadocStyle 而使用 MissingJavadocType 因为这是本检查的唯一目的。有可能在未来的更新中 JavadocStyle 不会再这样做了,因为它是重复的。MissingJavadocType 的。对于方法使用 MissingJavadocMethod.

无论使用哪种检查,你都必须指定正确的 scope 你想让它取课。如果它不正确,它将不会在所有情况下触发。

例如,由于不同的作用域,在枚举上有违规,但在类上没有违规。

$ cat TestClass.java
public enum TestEnum {}
private class TestClass {}

$ 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="MissingJavadocType">
    <property name="scope" value="public"/>
    <property name="tokens" value="CLASS_DEF, ENUM_DEF, INTERFACE_DEF"/>
</module>
    </module>
</module>

$ java -jar checkstyle-8.32-all.jar -c TestConfig.xml TestClass.java
Starting audit...
[ERROR] TestClass.java:1: Missing a Javadoc comment. [MissingJavadocType]
Audit done.
Checkstyle ends with 1 errors.
© www.soinside.com 2019 - 2024. All rights reserved.