In Maven Multi-Module-Projekte, wo ich möchte, dass jedes der Module immer die gleiche Version wie die Eltern, habe ich in der Regel etwas getan folgendes ist in der pom.xml des Moduls:Warnung für die Verwendung von project.parent.version als die Version eines Moduls in Maven 3
<parent>
<groupId>com.groupId</groupId>
<artifactId>parentArtifactId</artifactId>
<version>1.1-SNAPSHOT</version>
</parent>
<groupId>com.groupId</groupId>
<artifactId>artifactId</artifactId>
<packaging>jar</packaging>
<version>${project.parent.version}</version>
<name>name</name>
Da ich mit maven 3.0-alpha-5 gestartet, erhalte ich die folgende Warnung dafür.
[WARNING]
[WARNING] Some problems were encountered while building the effective model for com.groupid.artifactId:name:jar:1.1-SNAPSHOT
[WARNING] 'version' contains an expression but should be a constant. @ com.groupid.artifactId:name::${project.parent.version}, /Users/whaley/path/to/project/child/pom.xml
[WARNING]
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING]
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING]
Ich bin neugierig zu wissen, was das eigentliche Problem eines Moduls Version auf die Parent-Version mit binden ist, wenn überhaupt? Oder ist dies eine allgemeine Warnung, wenn ein Ausdruck, unabhängig davon, ob es sich um project.parent.version handelt, für das Versionselement verwendet wird?
Sehen Sie sich Ihre fettgedruckte Antwort hier an: http://maven.apache.org/guides/introduction/introduction-to-the-pom.html#Project_Inheritance. So wurde es in Maven erwähnt: The Definitive guide, aber ich habe das zu der Zeit, als ich es gelesen habe, beschönigt. Danke für die Korrektur. – whaley
Die Beispiele in http://jira.codehaus.org/browse/MNG-4715 scheinen einige gültige Gründe für die Verwendung einer Eigenschaft für das Element zu haben, also bin ich nicht davon überzeugt, dass es keinen Nutzen dafür gibt, sondern +1 für Erinnern Sie uns daran, dass Sie, wenn Sie wollen, dass Submodule die Eltern-Pom-Version verwenden, einfach das Tag entfernen und die Vererbung zulassen. –
metamatt
Ab Frühling Roo 1.3.0.BUILD-SNAPSHOT wenn Sie den '' -Tag von einem Kind Pom entfernen, würde es anfangen zu beschweren, dass 'Version für ... erforderlich ist. Aber das ist Spring Roos Schuld, nicht Mavens. Maven funktioniert ohne das Versions-Tag gut. –