繁体   English   中英

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

[英]Is there a way to run Checkstyle only on .java files WITHOUT ANT?

我正在尝试为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文件。

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

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命令行文档在这里


更新:使用抑制过滤器

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

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

有关抑制过滤器的文档可以在这里找到。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM