web-dev-qa-db-ja.com

Checkstyle-フォルダを除外する

チェックスタイルレポートから特定のフォルダー(generate-sourcesという名前)を無視したいのですが、それらは生成されているからです。

違反を表示するためにEclipse-csを使用しています。

xmlにsuppressionfilterを追加しました:

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

私のsuppressions.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="\*generated-sources\*\*\.\*" checks="[a-zA-Z0-9]*"/>
</suppressions>

しかし、それは機能していません。何か案は?

21
Philipp Sander
<suppress files="[\\/]generated-sources[\\/]" checks="[a-zA-Z0-9]*"/>

これは動作します:)

30
Philipp Sander

Philippからの回答に加えて、抑制ファイルには絶対パス名(:-()を使用する必要がありました。

<module name="SuppressionFilter">
    <property name="file" value="/Users/xxx/workspace/suppressions.xml"/>
</module>

Checkstyleプラグインがプロジェクトのホームディレクトリを使用していないようです。

(少なくともEclipse luna/Mac OS Xでは)

2
Thomas Welsch

彼の回答でThomas Welschが指摘しているように、抑制xmlファイルに相対パス名を使用することに問題があるようです。

Gradleビルドの場合、 This Gist は回避策を提案します:

build.gradle

checkstyle {
    // use one common config file for all subprojects
    configFile = project(':').file('config/checkstyle/checkstyle.xml')
    configProperties = [ "suppressionFile" : project(':').file('config/checkstyle/suppressions.xml')]
 }

checkstyle.xml

<module name="SuppressionFilter">
    <property name="file" value="${suppressionFile}" default="suppressions.xml"/>
</module>

(デフォルト値では、IDEプラグイン、gradle変数がソートされていないプラグインが正しく機能します)

0
gilad