groupid - Dependencias gestionadas por Maven: resolviendo ${project.version} desde parent pom
maven release plugin example (1)
Debe omitir la etiqueta <version>
en el elemento secundario, pero conservar la etiqueta <parent><version> ... </parent>
.
http://maven.apache.org/guides/introduction/introduction-to-the-pom.html#Project_Inheritance
Un factor a tener en cuenta es que estas variables se procesan después de la herencia como se describe anteriormente. Esto significa que si un proyecto principal usa una variable, entonces su definición en el niño, no en el padre, será la que finalmente se use.
¿Cómo se resuelve el marcador ${project.version}
posición ${project.version}
para propiedades administradas desde parent pom? Esperé que se resolviera globalmente, así que cuando el padre pom tiene la versión 2, ${project.version}
también se resolvería en la versión 2.
En Parent pom tengo:
<groupId>my.group</groupId>
<artifactId>parent</artifactId>
<version>2</version>
<packaging>pom</packaging>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>my.group</groupId>
<artifactId>dep</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
En el niño que uso
<parent>
<groupId>my.group</groupId>
<artifactId>parent</artifactId>
<version>2</version>
</parent>
<version>1</version>
<artifactId>child</artifactId>
Pero se usa el artefacto my.group.dep.1.jar
, en lugar de my.group.dep.2.jar
. Por lo tanto, el marcador de posición se resuelve en la versión del proyecto que utiliza la dependencia gestionada, y no los del proyecto que define la dependencia.
¿Es ese comportamiento esperado? Estoy usando maven 3.0.4.