Checkstyle抑制:我做错了什么?

时间:2012-07-06 15:23:51

标签: regex checkstyle

我在命令行上使用checkstyle。不在Maven或ANT。

我已经定义了一个suppressions.xml文件并从我的-c CheckstyleConfig.xml引用了它。

Checkstyle运行(没有解析错误),但它没有抑制任何内容。

我正在尝试让Checkstyle忽略.class个文件。以下是我的suppression.xml文件的内容:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suppressions PUBLIC
"-//Puppy Crawl//DTD Suppressions 1.1//EN"
"http://www.puppycrawl.com/dtds/suppressions_1_1.dtd">
<suppressions>
 <suppress checks="." files="(.*\.class)"/>
</suppressions>

关于我做错的任何想法? Checkstyle仍在处理.class个文件。

感谢。

2 个答案:

答案 0 :(得分:0)

Checkstyle对类文件不起作用,它无法解析它们。 Checkstyle适用于Java源代码,这些代码是以“.java”结尾的文件。

所以,问题是你的正则表达式来抑制错误。抑制应该是:

<suppress checks="." files="(.*\.java)"/>

答案 1 :(得分:0)

Checkstyle适用于你喂它的任何东西。默认的eclipse-cs安装只会为它提供Java文件和属性文件,但由于您是从命令行运行的,因此您必须排除.class文件以检查或禁止显示警告。

最好从检查中排除.class文件(以便Checkstyle永远不会看到它们),因为它可以节省您的时间。

但是如果你想抑制警告,你也可以这样做。 suppressions.xml 中的files正则表达式是贪婪的,因此.*已涵盖整个文件名,示例中的模式永远不会匹配。尝试使用此语法(禁止所有.class文件):

<suppressions>
    <suppress checks=".*" files="\.class$" />
</suppressions>