8
votes

Problèmes avec Findbugs Exclure le filtre

Je suis en train d'évaluer les tremblements de recherche et j'essaie d'utiliser les exclutfilter de sorte que l'outil ne traite pas les packages de test ni les talons EJB générés.

J'ai essayé ce qui suit: < PRE> XXX

L'EJB généré reste toujours considéré. Quelqu'un peut-il fournir une certaine direction à ce sujet.

Je veux exclure toutes les classes commençant par "_"

Exemple:

com / myCompany / Business /Admin/ejb/_adminremotehome_stub.java


com/mycompany/business/admin/ejb/_ejsremotestaStauxationAdMinhome_054d51b9_tie.j'd51b9_tie.java

ece.java

ece.javakedminhome_054d51b9_tie.java

ece.javakedminhome_054d51b9_tie.java

Recherche de fichiers de filtrage.

Je change le fichier de filtrage à la structure suivante à l'aide des changements REGX suggéré et les choses fonctionnent désormais comme prévu: xxx

ressemble à i Besoin de revenir en arrière et de brosser mon REGX.


1 commentaires

Les cours EJS se présentent-ils toujours? Avez-vous seulement le problème pour '_' classes maintenant?


3 Réponses :


8
votes

En ce qui concerne FindBugFilter ,

(juste pour être sûr) vous êtes sûr vous envisagez les fichiers de classe compilés répertoires, et non le SOURCEPATH? (Tel que mentionné dans le présent SO réponse ). P>

de Java section correspondant de nom de l'élément: p>

Si l'attribut nom de classe, méthode ou champ commence par le caractère ~ le reste du contenu de l'attribut est interprété comme un Java expression régulière strong> qui est en correspondance avec le nom de l'élément Java en question. p> Blockquote>

Would les éléments suivants regex être plus précis? P>

    <Class name="~.*\._.*"/>
    <Class name="~.*?EJS.*"/>
  • " * \ ._ * code>.." Au lieu de " * \ ^ _ * code>.." Parce que le ancre est censé correspondre au début de la chaîne du motif regex est appliqué. p> li>

  • ". * EJS. * Code>" au lieu de ". * EJS * code>" parce que le code> quantificateurs fait la mise en correspondance paresseux, en évitant de 'manger' EJS. (Plus " S * code>" signifie "0 ou n S", ce qui ne l'aide ici) p> li> ul> p>


3 commentaires

Je viens d'utiliser votre suggestion, mais les classes se présentent toujours dans le rapport.


Voici ce que le rapport génère: com / mycompany / business / admin / ejb / _adminremotehome_stub.java 2 ligne 33 Micing_code peut exposer une représentation interne en renvoyant une référence à un objet mutable


J'ai le même problème, cela n'exclut même pas:



1
votes

My FindBugs Exclude Le fichier ne fonctionnait pas comme ci-dessus. J'utilise le plug-in Findbugs-Maven-Plugin V3.0.0. Pour résoudre le problème, j'ai dirigé une version qui générée FindbugsXML.xml, puis émise:

<omitVisitors>UnreadFields</omitVisitors>


1 commentaires

Cela ne fonctionne pas du tout. Je désire avoir tous les avertissements actuels exclus, j'ai donc sélectionné la racine des avertissements, enregistré les exclusions à Findbugs_exclude.xml , et tout ce que j'ai obtenu un fichier vide, contenant uniquement .



0
votes

Il est utile de mentionner que si une classe est censée être exclue, soyez prudent avec ses classes intérieures fortes>. Il m'a fallu des heures pour savoir que, au lieu de

<Match>
    <Or>
    <Class name="com.some.Proto$Event" />
    <Class name="com.some.Proto$Msg" />
    <Class name="com.some.Proto$Query" />
    </Or>
</Match>


0 commentaires