2010-11-19 25 views
1

Si vous utilisez Findbugs pour l'inspection de code compilé, est-il possible d'échouer une construction basée sur le résultat d'un seul détecteur ou d'une catégorie de détecteurs? Par exemple, je voudrais m'assurer que je n'ai aucune détection liée au pointeur nul (préfixe de "NP" dans this list) de n'importe quelle priorité. De même, nous ne voulons vraiment pas avoir de situations wait not in loop. Cela dit, je ne veux pas nécessairement échouer une construction basée sur des détections d'internationalisation car celles-ci ne sont pas immédiatement critiques pour notre application.Comment échouer une construction basée sur le résultat d'un détecteur Findbugs unique?

L'état final souhaité serait un processus que nous pourrions régler pour une variété de phases de développement allant du niveau IDE (Eclipse et Netbeans) au niveau de version (les builds sont générés en utilisant CruiseControl).

REMARQUE: Je suis conscient qu'Eclipse et Netbeans ont tous deux des méthodes de détection similaires, mais il s'agit d'une question spécifique à FindBugs.

Répondre

2

De l'FindBugs Using the Ant Task section:

includeFilter

attribut en option. Il spécifie le nom de fichier d'un filtre spécifiant quels bogues sont signalés. Voir Chapter 8, Filter Files.

De Chapitre 8:

Cependant, un filtre pourrait également être utilisé pour sélectionner des instances de bugs à signaler en particulier:

$ findbugs -textui -include myIncludeFilter.xml myApp.jar

et

  1. Faites correspondre certains tests de toutes les classes en spécifiant leurs abréviations.
<Match> 
    <Bug code="DE,UrF,SIC" /> 
</Match></pre> 

Je suppose donc quelque chose le long des lignes de:

<Match> 
    <Bug code="Wa,NP" /> 
</Match> 

Dans votre filtre et comprennent

<findbugs includeFilter="path/to/includefilter.xml"... 

serait ce que vous cherchez.

Le path/to /includeFilter (ou excludeFilter) pourrait être une propriété qui obtient définie en fonction de la valeur d'une autre propriété qui pourrait par défaut à quelque chose comme dev pour construit régulièrement, test pour construit CI et deploy pour le déploiement builds et spécifier les avertissements spécifiques vous voulez voir ou ne voulez pas voir à chaque étape.

Espérons que ça aide.

+0

Est-ce que cela génère simplement des rapports, ou est-ce que cela provoquerait l'échec d'une construction Ant? – Snekse