Maven 2.2.1 prétend soutenir les gammes de version (voir par exemple http://www.sonatype.com/books/mvnref-book/reference/pom-relationships-sect-project-dependencies.html#pom-relationships-sect-version-ranges)maven plage de dépendance ne fonctionne pas comme prévu
J'ai essayé d'une installation de Maven brandnew la pom suivante:
<project>
<modelVersion>4.0.0</modelVersion>
<artifactId>rangetest</artifactId>
<groupId>my.group</groupId>
<version>1.0</version>
<packaging>jar</packaging>
<description>test project containing one dependency, only</description>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
La dépendance devrait résoudre à junit 4.8.2, non? Mais au contraire, la version 4.8 est résolu:
C:\Users>mvn dependency:tree
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'dependency'.
[INFO] ------------------------------------------------------------------------
[INFO] Building Unnamed - my.group:rangetest:jar:1.0
[INFO] task-segment: [dependency:tree]
[INFO] ------------------------------------------------------------------------
[INFO] [dependency:tree {execution: default-cli}]
[INFO] my.group:rangetest:jar:1.0
[INFO] \- junit:junit:jar:4.8:test
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2 seconds
[INFO] Finished at: Thu Oct 07 14:30:40 CEST 2010
[INFO] Final Memory: 9M/23M
[INFO] ------------------------------------------------------------------------
Vous pourriez penser qu'il est un problème avec Junit, comme 4.8 est une version existante, mais ce n'est pas. Dans mes projets, j'ai des versions déployées de 1.0.0 à 1.0.15 (pas de version 1.0!), Mais mvn dependency:tree
se plaint d'artefact manquant de la version 1.0.
Bien, Maven gamme spec http: //docs.codehaus.org/display/MAVEN/Dépendance + Médiation + et + Conflit + Résolution # DependencyMediationandConflictResolution-DependencyVersionRanges fait la différence entre les exigences "dures" (par exemple [4.8]) et les exigences "souples" (comme 4.8 sans crochets). Quelle est l'utilisation des exigences douces, alors? – Jay
@Jay: Jamais entendu parler du terme. '4.8.1' sélectionne juste cette version et rien d'autre. Je suppose que le document est périmé. –
Oui, peut-être un autre triste exemple de la piètre documentation de Maven. Connaissez-vous une meilleure référence pour les versions? – Jay