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

ed_*_*ame 7 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");
    }
}
Run Code Online (Sandbox Code Playgroud)

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

dog*_*ane 7

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

java -jar checkstyle-5.5-all.jar -c docs/sun_checks.xml -r /path/to/src
Run Code Online (Sandbox Code Playgroud)

如果你正在使用bash,你可以打开globstar然后只处理这样的java文件:

shopt -s globstar
java -jar checkstyle-5.5-all.jar -c docs/sun_checks.xml -r /path/to/src/**/*.java
Run Code Online (Sandbox Code Playgroud)

Checkstyle命令行文档在这里.


更新:使用抑制过滤器

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

suppressions.xml:

<suppressions>
    <suppress checks="." files=".*\.class"/>
</suppressions>
Run Code Online (Sandbox Code Playgroud)

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

my_checks.xml:

<module name="SuppressionFilter">
    <property name="file" value="suppressions.xml"/>
</module>
Run Code Online (Sandbox Code Playgroud)

运行:

java -jar checkstyle-5.5-all.jar -c my_checks.xml -r /path/to/src
Run Code Online (Sandbox Code Playgroud)

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