31

SuppressFBWarnings を使用するために何をインポートしますか? ヘルプ経由で findbugs プラグインをインストールしました / 新しいソフトウェアをインストールします

try {
  String t = null;
  @edu.umd.cs.findbugs.annotations.SuppressFBWarnings(
    value="NP_ALWAYS_NULL", 
    justification="I know what I'm doing")
  int sl = t.length();
  System.out.printf( "Length is %d", sl );
} catch (Throwable e) {
...
}

「edu を型に解決できません」というエラーがあります

4

1 に答える 1

27

FindBugs アノテーションを使用するには、FindBugs ディストリビューションからのannotations.jarおよびjsr305.jarをクラスパスに含める必要があります。@SuppressFBWarningsアノテーションのみが必要であることが確実な場合(その他は不要)、annotations.jarだけで十分です。

2 つの JAR は、 FindBugs ディストリビューションのlibフォルダーにあります。

Maven を使用している場合:

<dependency>
    <groupId>com.google.code.findbugs</groupId>
    <artifactId>annotations</artifactId>
    <version>3.0.1</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>com.google.code.findbugs</groupId>
    <artifactId>jsr305</artifactId>
    <version>3.0.1</version>
    <scope>provided</scope>
</dependency>

Gradle を使用している場合:

dependencies {
    compileOnly 'com.google.code.findbugs:annotations:3.0.1'
    compileOnly 'com.google.code.findbugs:jsr305:3.0.1'
}

compileOnlyprovidedMaven がスコープと呼ぶものの Gradle フレーバーです。


SpotBugs (2018) の更新:

FindBugs はSpotBugsに取って代わられました。したがって、既に SpotBugs を使用している場合、移行ガイドでは、代わりに次の依存関係を使用することをお勧めします。

代わりに、 spotbugs-annotationsnet.jcip:jcip-annotations:1.0の両方に依存してください。

メイヴン:

<dependency>
    <groupId>net.jcip</groupId>
    <artifactId>jcip-annotations</artifactId>
    <version>1.0</version>
    <optional>true</optional>
</dependency>
<dependency>
    <groupId>com.github.spotbugs</groupId>
    <artifactId>spotbugs-annotations</artifactId>
    <version>3.1.3</version>
    <optional>true</optional>
</dependency>

グレード:

dependencies {
    compileOnly 'net.jcip:jcip-annotations:1.0'
    compileOnly 'com.github.spotbugs:spotbugs-annotations:3.1.3'
}

も使用した場合jsr305、その依存関係は上記と同じままです。

于 2016-09-25T11:45:28.283 に答える