我想使用Maven Checkstyle插件,并使用自定义配置来告诉Checkstyle不要在缺少Javadoc时发出警告或错误。 有没有方法可以做到这一点?
我想使用Maven Checkstyle插件,并使用自定义配置来告诉Checkstyle不要在缺少Javadoc时发出警告或错误。 有没有方法可以做到这一点?
一个不错的选择是配置抑制过滤器。
插件配置:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<!-- ... -->
<build>
<plugins>
<!-- ... -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>2.17</version>
<executions>
<execution>
<id>verify</id>
<phase>verify</phase>
<configuration>
<encoding>UTF-8</encoding>
<consoleOutput>true</consoleOutput>
<failsOnError>true</failsOnError>
<linkXRef>false</linkXRef>
<suppressionsLocation>
checkstyle-suppressions.xml
</suppressionsLocation>
<suppressionsFileExpression>
checkstyle.suppressions.file
</suppressionsFileExpression>
</configuration>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<!-- ... -->
</project>
checkstyle-suppressions.xml
文件:
<?xml version="1.0"?>
<!DOCTYPE suppressions PUBLIC
"-//Puppy Crawl//DTD Suppressions 1.0//EN"
"http://www.puppycrawl.com/dtds/suppressions_1_0.dtd">
<suppressions>
<suppress checks="Javadoc" files="."/>
</suppressions>
然后运行
$ mvn verify
不会输出任何与 Javadoc 相关的 Checkstyle 错误。
许多其他有关压制过滤器的示例可以在 checkstyle repository 中找到。
maven-checkstyle-plugin
,因为编译某些代码而最终不符合checkstyle规范是没有意义的。 - Kalle Richter我自己也刚刚发现这个。要完全忽略所有内容的Javadoc检查,请将以下内容添加到您的Checkstyle配置中:
<!-- No need for Javadoc -->
<module name="JavadocType">
<property name="severity" value="ignore"/>
</module>
<module name="JavadocMethod">
<property name="severity" value="ignore"/>
</module>
<module name="JavadocVariable">
<property name="severity" value="ignore"/>
</module>
(javadoc) JavadocVariable: Missing a Javadoc comment.
- zygimantus(javadoc) JavadocVariable: Missing a Javadoc comment.
不兼容。而且仅仅移除配置是不够的,它仍然会回退到默认设置。 - Lukenzo plugins {
id 'checkstyle'
}
文件夹结构(根目录层级)。
├── config
└── checkstyle
├── checkstyle.xml
└── suppressions.xml
<module name="SuppressionFilter">
<property name="file" value="${config_loc}/suppressions.xml" />
</module>
现在,您可以在 suppressions.xml 文件中添加抑制项来忽略特定类型的检查。
例如,下面的代码库将忽略所有文件的指定检查(可以应用正则表达式来忽略特定匹配集的文件)。
<suppressions>
<suppress files="." checks="JavadocMethod"/>
<suppress files="." checks="JavadocPackage"/>
<suppress files="." checks="JavadocVariable"/>
<suppress files="." checks="MissingJavadocMethod"/>
<suppress files="." checks="JavadocPackage"/>
</suppressions>
现在,通过执行Checkstyle任务对合并的项目文件进行检查:
gradle check