Esta mañana estaba reordenando algunos plugins de Maven en los poms genéricos empresariales y curiosamente a través del Blog de Antonio Manuel Muñiz he encontrado un enlace al plugin DashBoard, que te permite un control “unificado” de algunos plugins estándar dentro de la comunidad Maven (JXR, Surefire, Cobertura, …).
Ciertamente en los procesos que mantenemos con Continuum y Archiva ya estaban incluidos casi todos por defecto, pero creo que un plugin de estas características aporta el tener de un vistazo rápido acceso a gráficas y estadísticas que son realmente muy interesantes.
En este plugin es posible también configurar mediante Hibernate y una BBDD una serie de reportes que podemos almacenar y recuperar configurando un histórico de versiones temporal “DashBoard” en nuestros proyectos.
Como siempre es bastante sencillo de preparar y configurar aunque merece la pena juguetear un poco con las configuraciones (sobre todo con el objetivo persist).
Por otro lado, me he dado cuenta que al pasar a la versión 2.5 de JavaDoc se ha marcado como deprecated el parámetro aggregated, muy útil para multiproyectos ya que nos permite no tener que ir viendo el JavaDoc generado para cada jar si tenemos 30 proyectos sino “entremezclado”.
Si actualizais vuestra versión podeis encontraros con algo así:
As of version 2.5, use the goals javadoc:aggregate and javadoc:test-aggregate instead.
Simplemente accediendo al objetivo javadoc:aggregate o al test-aggregate se solucionará evitando así ese parámetro.
Por otro lado, me he encontrado con un documento de CodeHaus que me ha ayudado a evitar problemas de codificación de plugins que hagan uso de ficheros fuente. Algo parecido a:
[WARNING] Source files encoding has not been set, using platform encoding Cp1252, i.e. build is platform dependent!
Como ellos mismos dicen, “Currently, the character encoding for source files needs to be configured individually for each and every plugin that processes source files. In this context, source file refers to some plain text file that – unlike an XML file – lacks intrinsic means to specify the employed file encoding. The Java source files are the most promiment example of such text files. Velocity templates, BeanShell scripts and APT documents are further examples.”
La solución ha pasado por una modificación de una propiedad general, más en concreto:
<project.build.sourceEncoding>iso-8859-1</project.build.sourceEncoding>
Si usais otro formato de codificación, lógicamente debereis modificar el interior de este tag.
Y en realidad, viendo el listado de plugins afectados, no me cabe duda de que os encontraréis con ello:
Affected Apache plugins:
- maven-changes-plugin (velocity template for announcement): MCHANGES-71
- maven-checkstyle-plugin (source analysis): MCHECKSTYLE-95, done in 2.2
- maven-compiler-plugin (source processing): MCOMPILER-70, done in 2.1-SNAPSHOT
- maven-invoker-plugin (beanshell script evaluation): MINVOKER-30, done in 1.2
- maven-javadoc-plugin (source processing): MJAVADOC-182, done in 2.5
- maven-jxr-plugin (source processing): JXR-60, done in 2.2-SNAPSHOT
- maven-plugin-plugin (javadoc extraction, java source generation): MPLUGIN-101, MPLUGIN-100
- maven-pmd-plugin (source analysis): MPMD-76, done in 2.4
- maven-resources-plugin (contents filtering): MRESOURCES-57, done in 2.3-SNAPSHOT
- maven-site-plugin (apt sources): MSITE-314, done in 2.0-beta-7