我正在尝试配置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文档的错误。
任何帮助都将不胜感激。
,它将验证类、接口和枚举以强制执行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.