Maven gerenciou dependências-resolvendo o projeto ${.versão} do pom pai
Como é que a substituição ${project.version}
é resolvida para propriedades geridas do pom pai? Eu esperava que fosse resolvido globalmente, então quando o pom pai tem a versão 2, ${project.version}
também seria resolvido para a versão 2.
no pom pai tenho:
<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>
na criança eu uso
<parent>
<groupId>my.group</groupId>
<artifactId>parent</artifactId>
<version>2</version>
</parent>
<version>1</version>
<artifactId>child</artifactId>
mas o artefacto my.group.dep.1.jar
é usado, em vez de my.group.dep.2.jar
. Assim, a substituição é resolvida para a versão do projeto usando a dependência gerenciada, e não as do projeto definir a dependência.
1 answers
Tens de saltar a etiqueta {[[0]} na criança, mas mantém a etiqueta <parent><version> ... </parent>
.
Http://maven.apache.org/guides/introduction/introduction-to-the-pom.html#Project_Inheritance
Um factor a ter em conta é que estas variáveis são processadas após herança como descrito acima. Isto significa que se um projecto pai usa uma variável, em seguida, a sua definição no Filho, não o pai, será o que eventualmente será usado.