web-dev-qa-db-ja.com

Checkstyleでファイルのすべてのチェックを抑制する方法は?

私はサードパーティのクラスのオーバーライドを行っていますが、それに対するすべてのチェックを抑制したいです(パッチが受け入れられるまでそれを維持しているだけだからです)。

ファイルのすべてのチェックを抑制する方法はありますか?

「*」を使用してみましたが、失敗します。

53
Alceu Costa

コマンドラインを使用しているか、IDEを使用しているかはわかりませんが、基本的には抑制ファイルが必要です。 Checkstyle構成ファイルを手動で編集している場合、新しいモジュールを追加します。

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

きみの mysuppression.xmlは次のようなものです。

<?xml version="1.0"?>

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

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

files」属性の値は基本的にソースファイルの正規表現であり、「checks」属性の値はスキップするチェックの正規表現です(「[a-zA-Z0-9]* "は基本的にすべてをスキップすることを意味します)。これはあなたが探しているパターンだと思いますか?

59
aberrant80

私は、checks.xmlにSuppressionCommentFilterタグを追加することで、ファイルのチェックを抑制することができました。

最初に、FileContentHolderタグをTreeWalkerタグの子として追加しました(この手順は、com.puppycrawl.tools:checkstyleのバージョン8.1以降ではnotが必要です)。

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

次に、checks.xmlにSuppressionCommentFilterを追加しました(com.puppycrawl.tools:checkstyleのバージョン8.1以降-「TreeWalker」ノードの下):

<module name="SuppressionCommentFilter"/>

チェックを抑制したい各ファイルで、ファイルの最初の行に次のコメントを挿入しました。

// CHECKSTYLE:OFF
24
Alceu Costa

aberrant80の回答は大いに役立ちました。彼のヒントの助けで-正規表現パターンマッチングを使用して、これをcheckstyle-suppressions.xmlファイルに追加することで、パッケージ全体のcheckstyleを抑制することもできました。例えば自動生成されたすべてのJavaファイルのチェックスタイルチェックをスキップするには、

    <suppressions>
        <suppress checks="[a-zA-Z0-9]*" files="[\\/]jaxb[\\/]" />
    </suppressions>
17
Inxsible

Checkstyle用のCheckclipse Eclipseプラグインを使用している場合は、プロジェクトプロパティの[Checkclipse]> [ファイルフィルター]タブに移動して、ファイルパターン(ディレクトリを含む)を含めたり除外したりできます。たとえば、私のプロジェクトには、最上位にsrcおよびtestディレクトリが含まれています。 Checkstyleをsrcディレクトリ内のファイルにのみ適用する(testを省略)ため、次のようなincludeパターンを追加しました。

src/.+Java$

ご覧のとおり、パターン指定には正規表現スタイルの構文を使用しています。

7
Rob H

@ aberrant80の答えはとても刺激的でしたが、私のプロジェクトではうまくいきませんでした。 link に従って、checkstyleがFoo.Javaで検索する警告を抑制するために、mavenが使用されている場合:

<plugin>
    <groupId>org.Apache.maven.plugins</groupId>
    <artifactId>maven-checkstyle-plugin</artifactId>
    ...
        <configuration>
            ...
            <configLocation>checkstyle.xml</configLocation>
            <suppressionsLocation>checkstyle-suppressions.xml</suppressionsLocation>
            ...
        </configuration>                
    ...
</plugin>

そしてcheckstyle-suppressions.xml

<!DOCTYPE suppressions PUBLIC "-//Puppy Crawl//DTD Suppressions 1.1//EN" "http://www.puppycrawl.com/dtds/suppressions_1_1.dtd">
<suppressions>
    <suppress files="Foo.Java" checks="[a-zA-Z0-9]*" />
</suppressions>

これまでのところ、最高バージョンは1.1です(1.2は存在しません)。

2
Tiina

プロジェクト内のファイルのグループを検査したくない場合は、file filter

ファイルフィルターは正規表現を使用して、除外するファイルを決定します。正規表現は完全なファイル名で動作します-このため、フォルダー全体を除外することもできます。この場合、必要に応じてパッケージ全体を除外できます。

少しグーグルで検索した場合-おそらく、探しているものの例が含まれているCheckstyle Configuration Propertieファイルを見つけることができます。あなたがそうした後、私は提案します-あなたが将来の状況でそれを参照できるように、テンプレートのビットとして保存します

0
PSU_Kardi

書き込み保護されたファイルを無視するオプションがあります。またはパッケージ内のファイル。

0
akarnokd