How is placeholder ${project.version}
resolved for managed properties from parent pom? I've expected that it is resolved globally, so when the parent pom has version 2, ${project.version}
would also be resolved to version 2.
In parent pom I have:
<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>
In child I use
<parent>
<groupId>my.group</groupId>
<artifactId>parent</artifactId>
<version>2</version>
</parent>
<version>1</version>
<artifactId>child</artifactId>
But the artifact my.group.dep.1.jar
is used, instead of my.group.dep.2.jar
. So the placeholder is resolved to the version of the project using the managed dependency, and not those of the project defining the dependency.
Is that expected behaviour? I'm using maven 3.0.4.