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.

Isso é comportamento esperado? Estou a usar o maven 3.0.4.

Author: Xtreme Biker, 2013-06-03

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.

 30
Author: Terafor, 2016-10-20 12:52:18