Precedencia de propiedades personalizadas en Maven

10/06/2016

Maven

Si alguna vez has trabajado con Maven sabrás que te permite definir propiedades personalizadas que se pueden utilizar como placeholders (marcadores o comodines) para reutilizar valores o con fines de configuración o incluso como un modo de configurar los recursos de tu construcción final usando filtros (filters).  Esto nos viene muy bien para definir configuraciones específicas por entorno.

Estas propiedades personalizadas se pueden definir en múltiples lugares.  Pero ¿qué ocurre cuando defines (o re-defines) la misma propiedad en múltiples lugares?  ¿Que definición tendrá precedencia sobre las otras?

El orden de precedencia a la hora de resolver el valor de las propiedades personalizadas en Maven es el siguiente:

  • Propiedades del sistema (system):  establecidas con -Dxyz=valor desde la línea de comandos
  • De/los perfil/es (profile) activo/s actualmente:  settings.xml del directorio de usuario primero, profiles.xml del directorio raiz del proyecto después, y los perfiles definidos en el pom.xml en último lugar.  Si están activos varios perfiles y una propiedad está definida en más de uno, el orden de precedencia se basa en el último perfil en que la propiedad ha sido definido, en orden alfabético del nombre del perfil.
  • En la sección properties del pom.xml
  • Por último, en los properties de los filtros.  Si una propiedad se define en múltiples filtros, el último (en orden de aparición en la sección filters) tiene precedencia sobre los otros.

vía

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: