我有一个看起来像这样的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
答案 0 :(得分:29)
您是否已将FileContentsHolder配置为documented?
<module name="TreeWalker">
...
<module name="FileContentsHolder"/>
...
</module>
答案 1 :(得分:0)
最近这对我也不起作用,但自 checkstyle 8.2 以来接受的答案已过时:
<块引用>删除 FileContentsHolder 模块,因为 FileContents 对象可用于 TreeWalkerAudit 事件中 TreeWalker 上的过滤器。
但是 version 8.6 添加了 SuppressWithPlainTextCommentFilter
:
新的 Checker 过滤器 SuppressWithPlainTextCommentFilter,类似于 Treewalker 的 SuppressionCommentFilter。
我没有使用 SuppressionCommentFilter
,而是使用了上面的 SuppressWithPlainTextCommentFilter
,一切都开始工作了。
示例:
<module name="TreeWalker">
...
</module>
<module name="SuppressWithPlainTextCommentFilter">
<property name="offCommentFormat" value="CSOFF: ALL"/>
<property name="onCommentFormat" value="CSON: ALL"/>
</module>
<module name="SuppressWithPlainTextCommentFilter">
<property name="offCommentFormat" value="CSOFF\: ([\w\|]+)"/>
<property name="onCommentFormat" value="CSON\: ([\w\|]+)"/>
<property name="checkFormat" value="$1"/>
</module>
现在我可以了
public static final int lowerCaseConstant; // CSOFF: ConstantNameCheck
public final static int MultipleERRORS;; // CSOFF: ALL