Pregunta

Estoy haciendo una anulación para una clase de terceros y quiero suprimir todas las comprobaciones (ya que solo lo mantendré hasta que se acepte el parche).

¿Hay alguna forma de suprimir todas las comprobaciones de un archivo?

Intenté usar " * " pero eso falla.

¿Fue útil?

Solución

No sé si está utilizando la línea de comandos o en un IDE, pero básicamente necesitará un archivo de supresiones. Si está editando manualmente el archivo de configuración de Checkstyle, agregue un nuevo módulo:

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

Su mysuppression.xml puede ser algo así como:

<?xml version="1.0"?>

<!DOCTYPE suppressions PUBLIC
    "-//Puppy Crawl//DTD Suppressions 1.1//EN"
    "http://www.puppycrawl.com/dtds/suppressions_1_1.dtd">

<suppressions>
    <suppress files="TheClassToIgnore\.java" checks="[a-zA-Z0-9]*"/>
</suppressions>

El valor para " archivos " El atributo es básicamente una expresión regular para sus archivos de origen, y el valor de " comprueba " El atributo es regex para qué comprobaciones omitir (" [a-zA-Z0-9] * " básicamente significa omitir todo). ¿Supongo que este es el patrón que estás buscando?

Otros consejos

Pude suprimir las verificaciones en un archivo agregando la etiqueta SuppressionCommentFilter en mis cheques.xml:

Primero, agregué la etiqueta FileContentHolder como elemento secundario de la etiqueta TreeWalker (este paso no es necesario desde la versión 8.1 de com.puppycrawl.tools:checkstyle):

<module name="TreeWalker">
    ...
    <module name="FileContentsHolder"/>
    ...
</module>

Luego agregué el SuppressionCommentFilter en cheques.xml (desde la versión 8.1 de com.puppycrawl.tools:checkstyle - bajo " TreeWalker " nodo):

<module name="SuppressionCommentFilter"/>

En cada archivo que quería suprimir los cheques, inserte el siguiente comentario en la primera línea del archivo:

// CHECKSTYLE:OFF
La respuesta de

aberrant80 ayudó mucho. Con la ayuda de su sugerencia: al usar la coincidencia de patrones regex, también pude suprimir el estilo de verificación para un paquete completo al agregar esto al archivo checkstyle-suppressions.xml. Por ej. para omitir las comprobaciones de estilo de comprobación en todos los archivos java generados automáticamente en el paquete jaxb,

    <suppressions>
        <suppress checks="[a-zA-Z0-9]*" files="[\\/]jaxb[\\/]" />
    </suppressions>

Si está utilizando el complemento Checkclipse Eclipse para Checkstyle, puede incluir o excluir patrones de archivo (incluidos directorios) yendo a Checkclipse > Ficha Filtro de archivos en las propiedades del proyecto. Por ejemplo, mi proyecto contiene directorios src y prueba en el nivel superior. Quiero que Checkstyle se aplique solo a los archivos en el directorio src (omitiendo prueba ), así que agregué un patrón de inclusión que se ve así:

src/.+java$

Como puede ver, utiliza una sintaxis de estilo regex para la especificación del patrón.

La respuesta de

@ aberrant80 es muy inspiradora, aunque no funcionó en mi proyecto. Para suprimir cualquier advertencia que el estilo de comprobación busque en Foo.java, de acuerdo con enlace , si se utiliza maven:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-checkstyle-plugin</artifactId>
    ...
        <configuration>
            ...
            <configLocation>checkstyle.xml</configLocation>
            <suppressionsLocation>checkstyle-suppressions.xml</suppressionsLocation>
            ...
        </configuration>                
    ...
</plugin>

Y en checkstyle-suppressions.xml

<!DOCTYPE suppressions PUBLIC "-//Puppy Crawl//DTD Suppressions 1.1//EN" "http://www.puppycrawl.com/dtds/suppressions_1_1.dtd">
<suppressions>
    <suppress files="Foo.java" checks="[a-zA-Z0-9]*" />
</suppressions>

Hasta ahora, la versión más alta es 1.1 (1.2 no existe).

Hay una opción para ignorar los archivos protegidos contra escritura. O archivos en un paquete.

Si no desea inspeccionar un grupo de archivos dentro de un proyecto, puede filtrar estos archivos para que no se inspeccionen creando un filtro de archivos

El filtro de archivos usa expresiones regulares para determinar qué archivos excluir. La expresión regular funciona con el nombre completo del archivo; debido a esto, también puede excluir carpetas completas. En este caso, puede excluir todo el paquete si lo desea.

Si buscas en Google un poco, probablemente puedas encontrar algunos archivos de Propiedad de configuración de Checkstyle que tengan ejemplos de lo que estás buscando. Te sugiero que después de hacerlo, guárdalo como una plantilla para que puedas consultarlo en situaciones futuras

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top