Checkstyleでファイルのすべてのチェックを抑制する方法は?
-
06-07-2019 - |
質問
サードパーティクラスのオーバーライドを行っていますが、それに対するすべてのチェックを抑制したいです(パッチが受け入れられるまでそれを維持するだけです)。
ファイルのすべてのチェックを抑制する方法はありますか
" *"を使用してみましたしかし、それは失敗します。
解決
コマンドラインを使用しているか、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>
&quot; files
&quot;の値属性は基本的にソースファイルの正規表現であり、&quot; checks
&quot;の値です。属性は、スキップするチェックの正規表現です(&quot; [a-zA-Z0-9] *
&quot;は、基本的にすべてをスキップすることを意味します)。これはあなたが探しているパターンですか?
他のヒント
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以降-&quot; TreeWalker&quot;ノードの下):
<module name="SuppressionCommentFilter"/>
チェックを抑制したい各ファイルで、ファイルの最初の行に次のコメントを挿入しました:
// CHECKSTYLE:OFF
aberrant80の回答は大いに役立ちました。彼のヒントの助けで-正規表現パターンマッチングを使用して、これをcheckstyle-suppressions.xmlファイルに追加することで、パッケージ全体のcheckstyleを抑制することもできました。 例えばjaxbパッケージの下にある自動生成されたすべてのJavaファイルのチェックスタイルチェックをスキップするには、
<suppressions>
<suppress checks="[a-zA-Z0-9]*" files="[\\/]jaxb[\\/]" />
</suppressions>
Checkstyle用のCheckclipse Eclipseプラグインを使用している場合は、Checkclipseに移動してファイルパターン(ディレクトリを含む)を含めたり除外したりできます&gt;プロジェクトプロパティの下の[ファイルフィルター]タブ。たとえば、私のプロジェクトには、最上位に src および test ディレクトリが含まれています。 Checkstyleを src ディレクトリ内のファイルにのみ適用する( test は省略)ため、次のようなincludeパターンを追加しました:
src/.+java$
ご覧のとおり、パターン指定には正規表現形式の構文が使用されています。
@ aberrant80の回答は、私のプロジェクトではうまくいきませんでしたが、非常に刺激的です。 リンク、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は存在しません)。
書き込み保護されたファイルを無視するオプションがあります。またはパッケージ内のファイル。
プロジェクト内のファイルのグループを検査したくない場合は、ファイルフィルター
を作成することにより、これらのファイルを除外して検査されないようにすることができますファイルフィルターは正規表現を使用して、除外するファイルを決定します。正規表現は完全なファイル名で動作します-このため、フォルダー全体を除外することもできます。この場合、必要に応じてパッケージ全体を除外できます。
少しグーグルで検索した場合-おそらく、探しているものの例を含むCheckstyle Configuration Propertieファイルを見つけることができます。そうしたら、それをテンプレートとして少し保存して、将来の状況で参照できるようにすることをお勧めします