質問

とPMDしたい場合は、無視する特定の警告、利用できる // NOPMD その線は無視されます。

ものがあるのか、それは何なのかで似たよFindBugs?

役に立ちましたか?

解決

FindBugsの最初のアプローチは、別名のフィルタリングXML設定ファイルが含まれます。これは、PMDのソリューションよりも、本当に不便ですが、コメントは明らかにオプションではありませんので、FindBugsのは、バイトコードではなく、ソースコード上で動作します。例:

<Match>
   <Class name="com.mycompany.Foo" />
   <Method name="bar" />
   <Bug pattern="DLS_DEAD_STORE_OF_CLASS_LITERAL" />
</Match>

ただし、この問題を解決するために、FindBugsのは、後で注釈に基づいて別のソリューションを導入しました(あなたがで使用することができます) SuppressFBWarningsするを見ますクラスやメソッドレベルで(私の意見ではXMLより便利)。例(1おそらく最高ではないけど、まあ、それは単なる例です):

@edu.umd.cs.findbugs.annotations.SuppressFBWarnings(
    value="HE_EQUALS_USE_HASHCODE", 
    justification="I know what I'm doing")

FindBugsのため、3.0.0 SuppressWarningsが原因でJavaの@SuppressFBWarningsと名前の衝突のSuppressWarningsの賛成で廃止されていることに注意してください。

他のヒント

他の人が述べたように、あなたは@SuppressFBWarningsアノテーションを使用することができます。 あなたがしたくないか、あなたのコードに別の依存関係を追加することができない場合、あなたはあなたのコードに自分自身を注釈を追加することができ、FindBugsのは注釈があるパッケージに注意してdosn'tます。

@Retention(RetentionPolicy.CLASS)
public @interface SuppressFBWarnings {
    /**
     * The set of FindBugs warnings that are to be suppressed in
     * annotated element. The value can be a bug category, kind or pattern.
     *
     */
    String[] value() default {};

    /**
     * Optional documentation of the reason why the warning is suppressed
     */
    String justification() default "";
}

ソース: https://sourceforge.net/p/findbugs/feature -requests / 298 /#5e88する

ここで(それだけでスニペットを示し、<FindBugsFilter>開始タグと終了タグの不足しているので、それ自体で上記の例では動作しません)XMLフィルタのより完全な例です。

<FindBugsFilter>
    <Match>
        <Class name="com.mycompany.foo" />
        <Method name="bar" />
        <Bug pattern="NP_BOOLEAN_RETURN_NULL" />
    </Match>
</FindBugsFilter>

あなたは[ファイル]を使用して、XMLフィルタファイルを参照し、AndroidのメーカーFindBugsのプラグインを使用している場合>その他の設定]> [デフォルト設定] - > [その他設定 - > FindBugsの-IDEA->フィルタ - >除外フィルターファイル - >を追加します。

更新Gradle

dependencies {
    compile group: 'findbugs', name: 'findbugs', version: '1.0.0'
}

をFindBugs報告書

file:///Users/your_user/IdeaProjects/projectname/build/reports/findbugs/main.html

の特定のメッセージ

find bugs

輸入は正しいバージョンのアノテーション

import edu.umd.cs.findbugs.annotations.SuppressWarnings;

追加のアノテーションを直接上記に違反したコード

@SuppressWarnings("OUT_OF_RANGE_ARRAY_INDEX")

は、こちらをご参照詳細情報: findbugs春ン

この(2018年5月)を書いている時点で、FindBugsのは SpotBugs に置き換えられているようです。 SuppressFBWarningsアノテーションを使用すると、Javaの8を指定してコンパイル以降とspotbugs-annotations.jarにコンパイル時の依存関係を紹介するためにあなたのコードを必要とします。

SpotBugsルールをフィルタリングするフィルタファイルを使用してそのような問題を持っていません。ドキュメントはここを。

です

私はここにこの1を残すつもりです: https://stackoverflow.com/a/14509697/1356953する

これはjava.lang.SuppressWarningssoで別のアノテーションを使用する必要が働かないことに注意してください。

  

フィールド上の@SuppressWarningsはFindBugsの警告を抑制し   そのフィールドの宣言ではなく、関連付けられたすべての警告について報告   そのフィールドます。

     

これは、例えば、「フィールドのみがこれまでにnullに設定されている」抑制します   警告:

     

@SuppressWarnings( "UWF_NULL_FIELD")文字列S = NULL;私は最高だと思います   あなたが行うことができ、最小に警告してコードを分離です   方法あなたは、その後、全体の方法で警告を抑制することができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top