0

我在命令行上使用 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文件。

谢谢。

4

2 回答 2

0

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

最好将.class文件排除在检查之外(这样 Checkstyle 永远不会看到它们),因为它会节省您的时间。

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

<suppressions>
    <suppress checks=".*" files="\.class$" />
</suppressions>
于 2012-10-30T21:16:38.837 回答
0

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

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

<suppress checks="." files="(.*\.java)"/>
于 2012-07-07T08:00:01.380 回答