views:

2315

answers:

5

I'm doing an override for a third party class and I want to suppress all checks for it (since I'm only keeping it around until the patch is accepted).

Is there a way to suppress all checks for a file?

I tried using "*" but that fails.

A: 

There is an option to ignore write protected files. Or files in a package.

kd304
Do you know the command used to ignore files in a package?
Alceu Costa
I use checkstyle through Eclipse. There is a project property for that.
kd304
A: 

If you're using the Checkclipse Eclipse plugin for Checkstyle, you can include or exclude file patterns (including directories) by going to the Checkclipse > File Filter tab under project properties. For example, my project contains src and test directories at the top level. I want Checkstyle applied to only files in the src directory (omitting test), so I added an include pattern that looks like this:

src/.+java$

As you can see, it uses a regex-style syntax for pattern specification.

Rob H
A: 

If you wish to not have a group of files within a project inspected, you can filter these files out so they are not inspected by creating a file filter

The file filter uses regex to determine what files to exclude. The regex operates on the complete file name - because of this, you could also exclude whole folders. In this case you could exclude the whole package if you wished.

If you google around a bit - you could probably find some Checkstyle Configuration Propertie files that have examples of what you're looking for. I would suggest after you do so - save it as a bit of a template so you can refer to it in future situations

PSU_Kardi
+2  A: 

Don't know whether you're using command line or in an IDE, but you'll basically need a suppresions file. If you're manually editing the Checkstyle config file, add a new module to it:

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

Your mysuppression.xml can be something like:

<?xml version="1.0"?>

<!DOCTYPE suppressions PUBLIC
    "-//Puppy Crawl//DTD Suppressions 1.1//EN"
    "http://www.puppycrawl.com/dtds/suppressions_1_1.dtd"&gt;

<suppressions>
    <suppress files="TheClassToIgnore\.java" checks="[a-zA-Z0-9]*"/>
</suppressions>

The value for "files" attribute is basically a regex for your source files, and the value for the "checks" attribute is regex for what checks to skip ("[a-zA-Z0-9]*" basically means skip everything). This is the pattern you're looking for I guess?

aberrant80
This is exactly what I'm looking for. But it didn't work. Do I have to set a checkstyle configuration somewhere to use the 'files' and 'checks' attributes as regular expressions? I can see that in the already existant suppres tags doesn't use the 'file' attribute as regex: i.e. files="MyClass.java" and not files="MyClass\.java".
Alceu Costa
Hmm... are you using an IDE? I'm afraid I can't help you more because the above is basically a simplified version of what I've set up for my current work - basically there was a group of similarly-named generated classes that we want Checkstyle to ignore, so we ignored a particularly pattern in the name.
aberrant80
+1  A: 

I was able to suppress the checks in a file br adding the SuppressionCommentFilter tag in my checks.xml:

First I added the FileContentHolder tag as a child of TreeWalker tag:

<module name="TreeWalker">
    ...
    <module name="FileContentsHolder"/>
    ...
</module>

Then I added the SuppressionCommentFilter in the checks.xml:

<module name="SuppressionCommentFilter"/>

In each file that I wanted to suppress the checks I inserted the following comment in the first line of the file:

// CHECKSTYLE:OFF
Alceu Costa