我在我的项目中配置了一个Checkstyle验证规则,禁止定义超过3个输入参数的类方法。该规则适用于我的类,但有时我必须扩展第三方类,而这些类并不遵守这个特定的规则。
有没有可能指示Checkstyle某个方法应该被静默忽略?
顺便说一句,我最终得到了自己的Checkstyle包装器:qulice.com (参见Strict Control of Java Code Quality)
发布于 2012-02-18 05:51:04
同样有效的是SuppressWithNearbyCommentFilter,它使用单独的注释来抑制审计事件。
例如
// CHECKSTYLE IGNORE check FOR NEXT 1 LINES
public void onClick(View view) { ... }
要配置筛选器,以便CHECKSTYLE忽略对下一个变量行的检查,以避免触发对当前行和下一个变量行(总共为var+1行)的给定检查的任何审核:
<module name="SuppressWithNearbyCommentFilter">
<property name="commentFormat" value="CHECKSTYLE IGNORE (\w+) FOR NEXT (\d+) LINES"/>
<property name="checkFormat" value="$1"/>
<property name="influenceFormat" value="$2"/>
</module>
发布于 2016-04-22 20:22:08
每一个提到SuppressWarningsFilter的答案都缺少一个重要的细节。如果在checkstyle-config.xml中定义了全小写id,则只能使用全小写id。如果不是,则必须使用原始模块名称。
例如,如果在我的checkstyle-config.xml中有:
<module name="NoWhitespaceBefore"/>
我不能使用:
@SuppressWarnings({"nowhitespacebefore"})
但是,我必须使用:
@SuppressWarnings({"NoWhitespaceBefore"})
为了使第一个语法起作用,checkstyle-config.xml应该具有:
<module name="NoWhitespaceBefore">
<property name="id" value="nowhitespacebefore"/>
</module>
这就是对我有效的方法,至少在CheckStyle版本6.17中是这样。
发布于 2016-11-03 22:42:37
我对上面的答案有困难,可能是因为我将checkStyle警告设置为错误。起作用的是SuppressionFilter:http://checkstyle.sourceforge.net/config_filters.html#SuppressionFilter
这样做的缺点是,行范围存储在单独的suppresssions.xml文件中,因此不熟悉的开发人员可能不会立即建立连接。
https://stackoverflow.com/questions/4023185
复制相似问题