Introducción a Checkstyle en Maven

Introducción a Checkstyle en Java

Introducción a Checkstyle en Java


Cuando se comienza un nuevo proyecto lo mejor es marcar unas normas y pautas de diseño, por lo que en este artículo de introducción a Checkstyle en Maven vamos a ver el uso de esta herramienta en nuestros proyectos.

El plugin de checkstyle nos va a ayudar a que nuestra aplicación tenga un diseño predefinido, de forma que todas las personas que trabajen en la misma aplicación adopten las mismas pautas.

Vamos a ver su configuración y como incluirlo en un proyecto maven.

Configuración Maven de Checkstyle

Vamos a añadir maven-checkstyle-plugin en nuestro pom.xml de nuestra aplicación para ello hay que añadirlo en la sección reporting:

<reporting>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-checkstyle-plugin</artifactId>
            <version>${checkstyle-maven-plugin.version}</version>
            <configuration>
                <configLocation>checkstyle.xml</configLocation>
            </configuration>
        </plugin>
    </plugins>
</reporting>

En la configuración anterior hemos añadido un checkstyle propio que se encuentra en el classpath de la aplicación. Este checkstyle es el google style que se puede sacar de aquí.

Las diferentes versiones del maven-checkstyle-plugin lo puedes encontrar aquí.

Si al ejecutar el informe te da algún error en el que se hace referencia a esta librería: com.puppycrawl.tools.checkstyle.checks.blocks.RightCurlyCheck, añade la dependencia en la configuración del checkstyle:

				<dependencies>
					<dependency>
						<groupId>com.puppycrawl.tools</groupId>
						<artifactId>checkstyle</artifactId>
						<version>10.9.1</version>
					</dependency>
				</dependencies>

De modo que toda la configuración quedaría de la siguiente manera:





Generación de informe de checkstyle

Una vez que nuestro plugin de maven de checkstyle ha sido configurado podemos obtener el informe html ejecutando el comando:

mvn checkstyle:checkstyle   

El informe generado se encuentra en target/site bajo el nombre checkstyle.html.

Introducción a Checkstyle en Java

En el informe anterior hemos forzado que saque todas las notificaciones a nivel de warning añadiendo el siguiente comando en configuración:

					<violationSeverity>warning</violationSeverity>

Informe maven checkstyle

El informe que se ha generado a través del comando anterior se divide en tres partes:

  • Files
  • Rules
  • Details

Integración del checkstyle con el Build del proyecto

Cuando trabajamos en equipo en un proyecto, por lo general vamos a querer mantener el mismo code style por lo que lo mejor es integrarlo con el build del proyecto. Para integrar el plugin de checkstyle lo lo hacemos dentro de un goal de maven.

Vamos a añadir el fragmento de código que debería ir en nuestro pom.xml para que el build del proyecto falle si el checkstyle de nuestro proyecto no es correcto:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-checkstyle-plugin</artifactId>
    <version>${checkstyle-maven-plugin.version}</version>
    <configuration>
        <configLocation>checkstyle.xml</configLocation>
    </configuration>
    <executions>
        <execution>
            <goals>
                <goal>check</goal>
            </goals>
        </execution>
    </executions>
</plugin>

Nuestro checkstyle.xml (el de google) se verifica con el proyecto. En caso de que el checkstyle.xml no concuerde con la implementación de nuestro proyecto fallará.

Podemos verificar el checkstyle con: mvn checkstyle:check y o con un mvn clean install. Con este último no se creará el build.

Si al ejecutar tenemos errores apareceran en la consola del IDE:

Ejecución checkstyle en Java

Entendiendo la estructura del checkstyle.xml

El checkstyle tiene que comenzar con la definición del DOCTYPE para continuar con la definición de los módulos.

Definición módulos checkstyle

El fichero checkstyle se compone de módulos. Un módulo esta compuesto de un nombre que representa lo que el módulo hace. El nombre se corresponde con una clase en el pugin de maven que al ejecutarse indica lo que debe hacer.

Existen tres tipos de módulos:

  • Checker: Los módulos están estructurados en un árbol que tiene el módulo Checker como raíz. Este módulo define las propiedades que son heredadas por todos los demás módulos de la configuración.
  • TreeWalker: Este módulo verifica los archivos fuente individuales de Java y define propiedades que son aplicables para verificar dichos archivos.
  • AvoidStarImport: Este módulo establece un estándar para no utilizar importaciones de tipo Star en nuestro código Java. También tiene una propiedad que solicita al complemento informar la gravedad de tales problemas como una advertencia. Por lo tanto, cada vez que se encuentren violaciones de este tipo en el código, se señalará una advertencia en su contra.

Conclusión

En esta entrada sobre introducción a Checkstyle en Maven hemos visto como realizar la configuración con maven del checkstyle. Si quieres ver el ejemplo que hemos utilizado en el artículo puedes echar un ojo aquí.

Si necesitas más información puedes escribirnos un comentario o un correo electrónico a refactorizando.web@gmail.com o también nos puedes contactar por nuestras redes sociales Facebook o twitter y te ayudaremos encantados!


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *