更改与模式匹配的文件的 Checkstyle 规则的严重性
Change severity of Checkstyle rule for files matching a pattern
我有一个如下所示的 checkstyle 文件:
<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
"-//Puppy Crawl//DTD Check Configuration 1.2//EN"
"http://www.puppycrawl.com/dtds/configuration_1_2.dtd">
<module name="Checker">
<module name="SuppressionFilter">
<property name="file" value="./suppressions.xml"/>
</module>
<module name="FileTabCharacter">
<property name="eachLine" value="true"/>
</module>
<module name="TreeWalker">
...
<module name="JavadocMethod"/>
<module name="JavadocType"/>
<module name="JavadocVariable"/>
...
</module>
</module>
还有一个 suppressions.xml 看起来像这样:
<suppressions>
<suppress checks="JavadocMethod" files="[/\]src[/\]test[/\]java[/\]"/>
<suppress checks="JavadocType" files="[/\]src[/\]test[/\]java[/\]"/>
<suppress checks="JavadocVariable" files="[/\]src[/\]test[/\]java[/\]"/>
</suppressions>
这在过去工作得很好,禁用 Javadoc 检查测试目录中的任何文件。
但是,现在我们想要在测试文件缺少 javadoc 时显示警告,而不是完全忽略它,但是对于不在测试目录中的文件,我们希望仍然具有错误严重性。
我已经试过了,但没有成功。有办法吗?
是的,您可以更改不同文件组的严重性。 (Javadoc 问题的错误严重性对我来说似乎相当苛刻,但很好。)
基本思路是将 Checkstyle 配置为同时生成两种严重性,然后抑制不需要的严重性。为了做到这一点,给你的支票一个id
(为简洁起见,仅作为JavadocMethod的例子):
<module name="JavadocMethod">
<property name="id" value="jmwarn"/>
<property name="severity" value="warning"/>
</module>
<module name="JavadocMethod">
<property name="id" value="jmerr"/>
<property name="severity" value="error"/>
</module>
然后,在您的抑制文件中,您可以控制哪些文件的严重程度:
<!DOCTYPE suppressions PUBLIC "-//Puppy Crawl//DTD Suppressions 1.1//EN"
"http://www.puppycrawl.com/dtds/suppressions_1_1.dtd">
<suppressions>
<suppress files="[/\]src[/\]test[/\]" id="jmerr" />
<suppress files="[\/]src[\/]main[\/]" id="jmwarn" />
</suppressions>
我有一个如下所示的 checkstyle 文件:
<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
"-//Puppy Crawl//DTD Check Configuration 1.2//EN"
"http://www.puppycrawl.com/dtds/configuration_1_2.dtd">
<module name="Checker">
<module name="SuppressionFilter">
<property name="file" value="./suppressions.xml"/>
</module>
<module name="FileTabCharacter">
<property name="eachLine" value="true"/>
</module>
<module name="TreeWalker">
...
<module name="JavadocMethod"/>
<module name="JavadocType"/>
<module name="JavadocVariable"/>
...
</module>
</module>
还有一个 suppressions.xml 看起来像这样:
<suppressions>
<suppress checks="JavadocMethod" files="[/\]src[/\]test[/\]java[/\]"/>
<suppress checks="JavadocType" files="[/\]src[/\]test[/\]java[/\]"/>
<suppress checks="JavadocVariable" files="[/\]src[/\]test[/\]java[/\]"/>
</suppressions>
这在过去工作得很好,禁用 Javadoc 检查测试目录中的任何文件。
但是,现在我们想要在测试文件缺少 javadoc 时显示警告,而不是完全忽略它,但是对于不在测试目录中的文件,我们希望仍然具有错误严重性。
我已经试过了,但没有成功。有办法吗?
是的,您可以更改不同文件组的严重性。 (Javadoc 问题的错误严重性对我来说似乎相当苛刻,但很好。)
基本思路是将 Checkstyle 配置为同时生成两种严重性,然后抑制不需要的严重性。为了做到这一点,给你的支票一个id
(为简洁起见,仅作为JavadocMethod的例子):
<module name="JavadocMethod">
<property name="id" value="jmwarn"/>
<property name="severity" value="warning"/>
</module>
<module name="JavadocMethod">
<property name="id" value="jmerr"/>
<property name="severity" value="error"/>
</module>
然后,在您的抑制文件中,您可以控制哪些文件的严重程度:
<!DOCTYPE suppressions PUBLIC "-//Puppy Crawl//DTD Suppressions 1.1//EN"
"http://www.puppycrawl.com/dtds/suppressions_1_1.dtd">
<suppressions>
<suppress files="[/\]src[/\]test[/\]" id="jmerr" />
<suppress files="[\/]src[\/]main[\/]" id="jmwarn" />
</suppressions>