2012-08-20 16 views
7

Estoy tratando de filtrar los archivos generados desde la comprobación de findbugs y todo lo que probé no parece funcionar. Prácticamente parte de mi proceso de creación creo un montón de clases que terminan en una carpeta llamada src/generated . Me interesaría filtrar todas esas clases. Estoy usando maven, pero no creo que importe.Findbugs excluye archivos generados

Gracias de antemano.

Respuesta

2

Sin saber lo que probaste, es un poco problemático ayudar.

Aquí hay un fragmento que usamos para omitir algunos patrones de error presentes en el código generado por Avro.

<FindBugsFilter> 
    <Match> 
    <!-- Avro generates redundant "implements" interface declarations --> 
    <Or> 
     <Package name="~com[.]foo[.]plugh[.]avro([.].*)?"  /> 
     <Package name="~com[.]foo[.]xyzzy[.]protocol([.].*)?" /> 
    </Or> 

    <Or> 
     <Bug pattern="RI_REDUNDANT_INTERFACES" /> 
     <Bug pattern="NM_CLASS_NAMING_CONVENTION" /> 
     <Bug pattern="REC_CATCH_EXCEPTION" /> 
    </Or> 
    </Match> 
<FindBugsFilter> 
+0

Gracias a Dave, tengo la carpeta src/main/java fuente que estoy bien para comprobar si hay errores. También tengo src/generated/java source folder que se genera durante la compilación. Quiero excluir el código generado de las comprobaciones de errores porque, al estar generado, está fuera de mi control. Espero que esto aclare lo que estoy tratando de lograr. – Julian

+0

@Julian Sé lo que estás tratando de hacer, no sé lo que has intentado. Lo anterior omite los errores definidos para los paquetes definidos. –

+0

No puedo ubicar las clases para excluir en función de los nombres de los paquetes, pero puedo ubicarlos según la carpeta en la que se encuentren. Ese es básicamente mi principal problema. – Julian

0

Así es cómo usar el Codehaus findbugs-maven-plugin. Incluye los paquetes que desea analizar, en lugar de excluir aquellos que no desea.

<reporting> 
    <plugins> 
    <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>findbugs-maven-plugin</artifactId> 
     <version>2.5.2</version> 
     <configuration> 
      <onlyAnalyze>com.company.util.*,com.company.myapp.*</onlyAnalyze> 
     </configuration> 
    </plugin> 
    </plugins> 
</reporting> 
+0

Esto todavía encontrará errores en las clases generadas, ya que se generan en los mismos paquetes. – Ben

+0

Posible, sí. Algunos complementos de generación de código permiten la especificación del nombre del paquete. Tengo una aplicación que usa cxf-xjc-plugin que hace exactamente eso. Cambia el nombre del paquete y es fácil ignorar las clases. Esto puede no ser una opción dependiendo de la herramienta utilizada. – user944849

Cuestiones relacionadas