【问题标题】:checkstyle JavadocType only on classes/interfaces/enumscheckstyle JavadocType 仅在类/接口/枚举上
【发布时间】:2020-04-28 15:31:44
【问题描述】:

我正在尝试配置 checkstyle 规则,它将验证类、接口和枚举,以使用以下配置强制 javadocs:

<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 文档,但检查样式仍然通过,而不是给出有关缺少的 java 文档的错误。

任何帮助将不胜感激。

【问题讨论】:

    标签: java maven-plugin checkstyle maven-checkstyle-plugin


    【解决方案1】:

    这将验证类、接口和枚举以强制执行 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.
    

    【讨论】:

      猜你喜欢
      • 2023-03-23
      • 1970-01-01
      • 2011-09-02
      • 1970-01-01
      • 1970-01-01
      • 2017-07-09
      • 1970-01-01
      • 1970-01-01
      • 2015-07-10
      相关资源
      最近更新 更多