我有一个checkstyle.xml,看起来像这样:
<module name="Checker">
....
<module name="SuppressionCommentFilter">
<property name="offCommentFormat" value="CSOFF\: ([\w\|]+)"/>
<property name="onCommentFormat" value="CSON\: ([\w\|]+)"/>
<property name="checkFormat" value="$1"/>
</module>
<module name="TreeWalker">
<module name="LineLength">
<property name="max" value="200"/>
</module>
....
</module>
</module>
在我的一个类中,我有一行超过200个字符,并将以下内容放在它周围:
// CSOFF: LineLength
...
// CSON: LineLength
但是,所讨论的行不会作为checkstyle的一部分被忽略。
我在pom.xml中指定了以下内容:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>2.6</version>
<configuration>
<configLocation>checkstyle.xml</configLocation>
</configuration>
</plugin>
</plugins>
</build>
以及执行以下步骤:
mvn checkstyle:checkstyle
3条答案
按热度按时间5vf7fwbs1#
是否已将FileContentsHolder配置为documented?
b1uwtaje2#
这对我最近也不起作用,但自checkstyle 8.2以来,公认的答案已经过时了:
删除FileContentsHolder模块,因为FileContents对象可用于TreeWalkerAudit事件中TreeWalker上筛选器
然而,版本8.6增加了
SuppressWithPlainTextCommentFilter
:新的Checker过滤器"抑制纯文本注解过滤器“,类似于Treewalker的”抑制注解过滤器“。
我没有使用
SuppressionCommentFilter
,而是使用了上面的SuppressWithPlainTextCommentFilter
,一切都开始工作了。示例:
现在我能做的
5us2dqdw3#
我偶然发现了一个使用此模块忽略事件审核的计划。前面提到的许多注解并不反映文档中发布的信息。讨论将是关于checkstyle 9.3。SuppressionCommentFilter无法根据文档工作的主要原因是:此筛选器只能在TreeWalker模块()中指定,并且只能应用于也在此模块中定义得检查.若要筛选出TreeWalker以外得检查(如RegexpSingleline),必须使用SuppressWithPlainTextCommentFilter或类似得筛选器.
我还想指出一个重要的注意事项,即checkC和checkCPP类似于SuppressWithPlainTextCommentFilter中的缺失。
请记住,模块可以包含ignorePattern属性,该属性可以帮助您忽略值。
最后,我想向您展示我在checkstyle.xml中使用的代码的类似部分