2012-04-30 14 views
7

Estoy intentando que a Checkstyle se le dé cualquier tipo de archivo, pero ignore todo lo que no sea un archivo .java. he creado un filtro, pero eso no parece estar funcionando:¿Hay alguna forma de ejecutar Checkstyle solo en archivos .java SIN ANT?

public class DotJavaFilter 
    extends AutomaticBean 
    implements Filter 
{ 

    public DotJavaFilter() 
     throws PatternSyntaxException 
    { 
    } 

    public boolean accept(AuditEvent aEvent) 
    { 
     final String fileName = aEvent.getFileName(); 
     return fileName.endsWith(".java"); 
    } 
} 

me gustaría dar CS un directorio de archivos y hacer que sólo se procesan los unos .java.

+0

Utilice el formato de código para código, entrada/salida y documentos estructurados como HTML o XML. Para hacerlo, seleccione la muestra y haga clic en el botón '{}' que se encuentra arriba del formulario de publicación/edición de mensajes. –

Respuesta

6

Se puede ejecutar en la línea de comando como este:

java -jar checkstyle-5.5-all.jar -c docs/sun_checks.xml -r /path/to/src 

Si está utilizando bash, puede activar el globstar y luego procesar sólo los archivos java como esto:

shopt -s globstar 
java -jar checkstyle-5.5-all.jar -c docs/sun_checks.xml -r /path/to/src/**/*.java 

Checkstyle La documentación de la línea de comando es here.


Actualización: El uso de un filtro de supresión de

Crear un archivo de supresiones que pasarán por alto todos los controles de los archivos de clase. Puede agregar expresiones regulares para otros tipos de archivos que no le interesan.

suppressions.xml:

<suppressions> 
    <suppress checks="." files=".*\.class"/> 
</suppressions> 

Añadir un filtro de supresión de sus cheques del archivo:

my_checks.xml:

<module name="SuppressionFilter"> 
    <property name="file" value="suppressions.xml"/> 
</module> 

Run que:

java -jar checkstyle-5.5-all.jar -c my_checks.xml -r /path/to/src 

La documentación sobre los filtros de supresión se puede encontrar here.

+0

No, no funciona así. Si le proporciona a CS un directorio de módulos que tiene archivos fuente y compilados en él ... CS buscará y escaneará los archivos .java junto con los archivos .class. Mis usuarios no quieren que recoja archivos que no sean de Java. –

+0

CORRECCIÓN: eso funciona usando sun_checks.xml. Cuando puse mi propio archivo de configuración, recoge todo. –

+0

Ver mi actualización sobre el uso de un filtro de supresión. – dogbane

Cuestiones relacionadas