pom - maven versions plugin



Von Maven verwaltete Abhängigkeiten-Auflösen von ${project.version} vom übergeordneten pom (1)

Wie wird der Platzhalter ${project.version} für verwaltete Eigenschaften aus dem übergeordneten POM aufgelöst? Ich habe erwartet, dass es global aufgelöst wird. Wenn also das übergeordnete POM Version 2 hat, wird ${project.version} auch in Version 2 aufgelöst.

Im Elternteil pom habe ich:

<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>     

Im Kind benutze ich

<parent>
    <groupId>my.group</groupId>
    <artifactId>parent</artifactId>
    <version>2</version>
</parent>
<version>1</version>
<artifactId>child</artifactId>

Es wird jedoch das Artefakt my.group.dep.1.jar anstelle von my.group.dep.2.jar . Der Platzhalter wird also mit der verwalteten Abhängigkeit in die Version des Projekts aufgelöst und nicht mit der des Projekts , das die Abhängigkeit definiert.

Ist das erwartetes Verhalten? Ich benutze Maven 3.0.4.


Sie müssen das <version> -Tag in child überspringen, aber das <parent><version> ... </parent> -Tag beibehalten.

http://maven.apache.org/guides/introduction/introduction-to-the-pom.html#Project_Inheritance

Ein zu beachtender Faktor ist, dass diese Variablen nach der Vererbung wie oben beschrieben verarbeitet werden. Dies bedeutet, dass, wenn ein übergeordnetes Projekt eine Variable verwendet, die Definition im untergeordneten Projekt und nicht im übergeordneten Projekt verwendet wird.





build-dependencies