Amago de pasar a maven 3.0.4

Hace tiempo que está maven 3.x disponible para usar y hace tiempo que tengo pendiente probarlo, sigo con mi maven 2.2.1. Hoy, como tenía un rato y estaba investigando algunas cosillas de maven, decidí bajarme y probar con la 3.0.4

Me puse con un proyecto relativamente sencillo, no es más que un jar con un main que hace consultas a unos web services (usando apache CXF) y mete los resultados en una base de datos (con Hibernate y PostgreSQL). Por supuesto, tiene un assembly para generar un zip con todas las dependencias y poder instalarlo fácilmente en el servidor de producción.

Pues nada, pruebo con maven 3.0.4 y lo primero que veo es que saca más log y es más "protestón". Donde maven 2.2.1 hace y no dice ni mú, este saca warnings de cosas que tienes mal y deberías arreglar. Le voy haciendo caso, puesto que es más sabio que yo y hay que hacerle caso. Al final consigo compilar todo sin warnings con maven 3.0.4. Genero mi zip assembly, me lo llevo al servidor de pruebas, lo desempaqueto, lo arranco y …. "NoDefClassFound".

Horror. Búsqueda de la clase pérdida, está en un jar stax2-api, necesitado por un woodstox-core-asl, que a su vez es necesitado por una librería de CXF. Curioso, ese jar parece estar dentro del zip en su sitio correcto. Reviso el fichero de manifiesto del jar con el main y la dependencia está. La clase perdida efectivamente está dentro del jar. ¡Qué cosa más rara!. Un rato mirando y remirando… hasta que me doy cuenta que la versión del stax2-api no es la misma en el fichero de manifiesto que la del jar que hay en el assembly. Una es la 3.0.5 y la otra la 3.1.1.

A revisar. Pues no, el pom.xml está bien, de hecho,  no referencia directamente esa librería para nada. mvn dependency:tree me dice que necesito la 3.0.5. El fichero de manfiesto generado con el maven-jar-plugin añade al Class-Path la 3.0.5, pero el maven assembly mete la 3.1.1.

Vuelta a maven 2.2.1 (sólo cambiar el path donde se busca maven) y listo, arreglado, ya funciona bien y no hay incoherencia de versiones. Así que nada, me sigo quedando con 2.2.1. O bien el plugin assembly no es muy compatible con maven 3.0.4, o bien tengo alguna cosa rara en algún sitio que afecta sólo a esa versión nueva de maven y no a la vieja.

Entradas relacionadas:

Esta entrada ha sido publicada en maven y etiquetada como , . Guarda el enlace permanente.

1 respuesta a Amago de pasar a maven 3.0.4

  1. Vaya… pues me has quitado las ganas… No repetiré tu experiencia y esperaré un poquito más entonces.. Gracias por tu aporte.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.