0

我正在尝试配置 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 文档的错误。

任何帮助,将不胜感激。

4

1 回答 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.
于 2020-05-01T21:59:38.073 回答