Maven JXR Plugin: publica el código fuente en el site

0
9010

Maven JXR Plugin: publica el código fuente en el site.

0. Índice de contenidos.

1. Introducción

JXR es un plugin para maven, de tipo reporting, que genera en el site un informe con los fuentes java de tu aplicación: «Source Xref».

Con la misma estructura de páginas que el javadoc (FRAMES NO FRAMES), se puede navegar por el código fuente de las clases gracias a que incluye hiperenlaces entre las mismas.

El plugin, además, sirve como base para otros plugins que generan informes basados en el código fuente. De este modo, configurado con PMD, permite el acceso directo a la línea de código que provoca la violación de una regla desde el propio informe de PMD.

2. Entorno.

El tutorial está escrito usando el siguiente entorno:

  • Hardware: Portátil Asus G1 (Core 2 Duo a 2.1 GHz, 2048 MB RAM, 120 GB HD).
  • Sistema operativo: Windows Vista Ultimate.
  • JDK 1.5.0_15
  • Eclipse 3.4, con q4e.

3. Configuración.

La configuración del plugin es bastante simple, en la sección de reporting del fichero de descripción del proyecto (pom.xml), debemos incluir la dependencia al plugin:

...
  
      ...
      
        org.apache.maven.plugins
        maven-jxr-plugin
      
      ...	
  
...

En el site del plugin podemos encontrar una configuración para un proyecto multimódulo: basta con incluir la etiqueta <aggregate> a la configuración:

...
  
        ...
        
          org.apache.maven.plugins
          maven-jxr-plugin
          
            ...
            true
            ...
          
        
        ...	
  
...

Se puede configurar en comandita con el plugin que genera el javadoc, de modo que desde el informe de «Source Xref», al acceder al código fuente de una clase tengamos un acceso directo al javadoc de la misma:

...
  
        ...
        
          org.apache.maven.plugins
          maven-javadoc-plugin
        
        
          org.apache.maven.plugins
          maven-jxr-plugin
          
            ...
            true
            /apidocs
            ...
          
        
        ...	
  
...

En la etiqueta <javadocDir> se configura el path relativo para acceder al raíz del javadoc publicado. Al ejecutarlo en local puede que no se enlace correctamente, el enlace será el correcto una vez publicado el site en un servidor web (podéis comprobarlo ejecutando mvn site:run y accediento al site a través de http://localhost:8080 en un browser).

4. Informe «Source Xref».

El informe se generará dentro del ciclo de vida de maven, en el goal específico del site, en la fase de release, o invocándo a la generación de una manera directa. Si estamos trabajando con Elcipse y q4e:

Generación informes con q4e

En la sección de informes del site se generará la opción correspondiente a la informe «Source Xref»:

Informes en el site

Pulsando sobre la misma se mostrará una página, del estilo del javadoc, con acceso a los paquetes y las clases, mostrando el código fuente de las clases de la aplicación:

Informe Source Xref

Si lo hemos configurado correctamente en la cabecera de cada fuente se podrá enlazar con el javadoc y desde el propio fuente se puede navegar por las clases incluidas en la distribución, como en el ejemplo desde la clase HibernateDao se accede a la interfaz Dao:

Código fuente con Source Xref

5. Configuración con PMD.

Podemos configurar que el informe de PMD incluya un enlace directo al código que causa la violación de la regla. Para ello basta con incluir la etiqueta <linkXref> a true:

...
  
        ...
			
				org.apache.maven.plugins
				maven-pmd-plugin
				2.4
				
					true
					UTF-8
					20
					1.5
					
			             /rulesets/clone.xml
			             /rulesets/j2ee.xml  
					
				
			
        ...	
  
...

Ahora, desde el propio informe, se puede acceder al código fuente mediante un enlace a la línea que aparece a la derecha de la fila. En el ejemplo mostramos una violación de código duplicado con cpd:

Informe con CPD

6. Configuración con CheckStyle.

La configuración con CheckStyle es transparente, basta con incluir la configuración del plugin, y enlaza por defecto con el informe de Xref.

...
  
        ...
        
          org.apache.maven.plugins
          maven-checkstyle-plugin
          
            config/maven_checks.xml
          
        
        ...	
  
...

A continuación, un ejemplo del resultado:

Informe con CheckStyle

Efectivamente y sí, a la clase le falta el javadoc ;-).

7. Tips & Tricks.

En función del volumen de la aplicación y el número de informes que tengamos configurados, maven puede que necesite más memoria que la asignada por defecto a la jvm que lo ejecuta y se produzca un java.lang.OutOfMemoryError: Java heap space.

Para estos casos podemos redimensionar el tamaño de la memoria asignado al proceso, definiendo la variable de entorno MAVEN_OPTS.

En el ejecutable mvn o mvn.bat, podemos configurarla, puesto que viene con un ejemplo de ello:

set MAVEN_OPTS=-Xms512m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=256m

8. Conclusiones.

Maven no nos deja de sorprender y, cada día que pasa, se hace más imprescindible en nuestra casa.

La configuración via plugins, esto es, el hecho de que con una simple configuración obtengamos tanta funcionalidad, lo hace cada vez más potente.

Nuestra experiencia nos dicta que debemos invertir tiempo en mejorar la calidad y, con esta herramienta, el análisis de los informes relacionados con la misma se hace más legible.

Si necesitáis ayuda en la definición de vuestro marco de trabajo o en la configuración de las métricas de calidad, podeis contactarnos en autentia.com.

Un saludo.

Jose

mailto:jmsanchez@autentia.com

DEJA UNA RESPUESTA

Por favor ingrese su comentario!

He leído y acepto la política de privacidad

Por favor ingrese su nombre aquí

Información básica acerca de la protección de datos

  • Responsable:
  • Finalidad:
  • Legitimación:
  • Destinatarios:
  • Derechos:
  • Más información: Puedes ampliar información acerca de la protección de datos en el siguiente enlace:política de privacidad