M2E: La versión es duplicada de la versión padre - ¿ Por qué es esto una advertencia?


Tengo varios proyectos Maven que cada uno tiene alguna funcionalidad común o al menos configuración/dependencias comunes. Extraí esto en un pom común.xml, y luego modularizó varias facetas, por ejemplo persistencia, dependencias relacionadas con Spring, y así sucesivamente - todo en sus propios módulos que heredan de este POM padre.

Ahora mismo, "Common" es la versión 1.0.0 y tengo "ProjectA" que deseo heredar de ella. Recibo la advertencia:

La versión está duplicada de la versión padre

No entiendo completamente por qué esto es una advertencia. Yo pensaba que tenía la opción de omitir la versión de mi proyecto POM para heredar la versión. (Hago esto para módulos comunes - por ejemplo, common-spring agrega dependencias comunes adicionales para aplicaciones de Spring, y de hecho, ProjectA en realidad hereda de common-spring.)

¿No es solo eso - una opción? Si cambio mi versión de ProjectA a 1.0.1 o 2.0.0 todo está bien.

Author: Jigar Joshi, 2011-11-25

3 answers

Es solo m2e tratando de ser inteligente porque el elemento version (como group id) a veces puede ser redundante y puede ser heredado del POM padre, por lo que sería seguro eliminar este elemento de su POM hijo.

Pero a veces esta no es una información redundante, como cuando el proyecto padre y el hijo tienen diferentes ciclos de vida, y m2e debería permitir que esta advertencia se deshabilite. Desafortunadamente, no hay manera de hacer esto todavía: http://dev.eclipse.org/mhonarc/lists/m2e-users/msg01961.html

ACTUALIZAR: Como dice Duncan a continuación, en las versiones más recientes se puede desactivar esta advertencia.

 51
Author: Fabricio Lemos,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-11-01 12:47:20

Las versiones más recientes de m2e (desde 1.1) ahora le permiten desactivar esta advertencia.

Preferencias > Maven > Advertencias > Desactivar la advertencia" La versión está duplicada de la versión principal "

Informe de error original: https://bugs.eclipse.org/bugs/show_bug.cgi?id=356796

 52
Author: Duncan Jones,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-10-03 17:44:12

Si realmente te molesta, usa una propiedad para suprimir la advertencia con un astuto juego de manos:

<version>${api.version}</version>
<properties>
    <api.version>0.0.1-SNAPSHOT</api.version>
</properties>

Pero todo lo que realmente hará es mover la advertencia a la salida de la consola:

[WARNING] Some problems were encountered while building the effective model for [project]
[WARNING] 'version' contains an expression but should be a constant.
 2
Author: DJDaveMark,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-05-09 14:41:43