web-dev-qa-db-fra.com

Que faut-il importer pour utiliser @SuppressFBWarnings?

Que faut-il importer pour utiliser SuppressFBWarnings? J'ai installé le plugin findbugs via help/install new software Lorsque je tape import edu., Je ne peux pas faire d'espace de contrôle pour obtenir les options.

Exemple

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) {
...
}

A l'erreur "edu ne peut pas être résolu en un type"

19
user974465

Pour utiliser les annotations FindBugs, vous devez inclure annotations.jar et jsr305.jar de la distribution FindBugs sur votre chemin de classe. Si vous êtes sûr de vouloir le @SuppressFBWarnings annotation uniquement (et non pas autres ), alors annotations.jar seul suffirait.

Vous pouvez trouver les deux fichiers JAR dans le dossier lib de la distribution FindBugs .

Si vous utilisez 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>

Si vous utilisez Gradle:

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

compileOnly est la version Gradle de ce que Maven appelle provided scope.


Mise à jour pour SpotBugs (2018):

FindBugs a été remplacé par SpotBugs . Donc, si vous utilisez déjà SpotBugs, le guide de migration vous suggère d'utiliser à la place les dépendances suivantes:

Veuillez dépendre des deux spotbugs-annotations et net.jcip: jcip-annotations: 1.0 à la place.

Maven:

<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>

Gradle:

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

Si vous avez également utilisé jsr305, cette dépendance reste la même que ci-dessus.

20
barfuin