59

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

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

「*」を使用しようとしましたが、失敗します。

4

7 に答える 7

66

コマンド ラインを使用しているか、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]*" は基本的にすべてをスキップすることを意味します)。これはあなたが探しているパターンだと思いますか?

于 2009-06-19T06:11:39.703 に答える
30

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

まず、FileContentHolder タグを TreeWalker タグの子として追加しました ( com.puppycrawl.tools:checkstyle のバージョン 8.1 以降、この手順は必要ありません)。

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

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

<module name="SuppressionCommentFilter"/>

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

// CHECKSTYLE:OFF
于 2009-06-19T17:13:30.927 に答える
19

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

    <suppressions>
        <suppress checks="[a-zA-Z0-9]*" files="[\\/]jaxb[\\/]" />
    </suppressions>
于 2012-02-23T21:51:40.967 に答える
7

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

src/.+java$

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

于 2009-06-18T13:39:48.580 に答える
2

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

<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 は存在しません)。

于 2018-01-17T07:36:01.880 に答える
0

プロジェクト内のファイルのグループを検査したくない場合は、ファイル フィルターを作成してこれらのファイルを除外し、検査されないようにすることができます。

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

少しグーグルで検索すると、探しているものの例を含むいくつかの Checkstyle 構成プロパティ ファイルが見つかる可能性があります。後で参照できるように、テンプレートとして保存しておくことをお勧めします。

于 2009-06-19T05:46:59.337 に答える
0

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

于 2009-06-18T12:42:45.450 に答える