有没有办法只在没有ANT的.java文件上运行Checkstyle?

时间:2012-04-30 15:37:26

标签: java ant checkstyle

我正在尝试为Checkstyle提供任何文件类型,但忽略任何不是.java文件的内容。 我创建了一个过滤器,但这似乎不起作用:

public class DotJavaFilter
    extends AutomaticBean
    implements Filter
{

    public DotJavaFilter()
        throws PatternSyntaxException
    {
    }

    public boolean accept(AuditEvent aEvent)
    {
        final String fileName = aEvent.getFileName();
        return fileName.endsWith(".java");
    }
}

我想给CS一个文件目录,让它只处理.java文件。

1 个答案:

答案 0 :(得分:7)

您可以在命令行上运行它,如下所示:

java -jar checkstyle-5.5-all.jar -c docs/sun_checks.xml -r /path/to/src

如果您使用的是bash,则可以打开globstar,然后只处理这样的java文件:

shopt -s globstar
java -jar checkstyle-5.5-all.jar -c docs/sun_checks.xml -r /path/to/src/**/*.java

Checkstyle命令行文档为here


更新:使用抑制过滤器

创建一个抑制文件,忽略对类文件的所有检查。您可以为其他您不感兴趣的文件类型添加正则表达式。

<强> suppressions.xml:

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

在检查文件中添加抑制过滤器:

<强> my_checks.xml:

<module name="SuppressionFilter">
    <property name="file" value="suppressions.xml"/>
</module>

运行它:

java -jar checkstyle-5.5-all.jar -c my_checks.xml -r /path/to/src

可以找到有关抑制过滤器的文档here