J'ai un projet Maven qui a la dépendance directe comme suit:Maven picking mauvaise version SLF4J
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.5</version>
<scope>compile</scope>
<optional>false</optional>
</dependency>
mais malgré cela, la mvn dependency:tree
montre la version slf4j-api
choisie comme 1.6.2
, et que la dépendance directe à mon projet !
Il existe d'autres dépendances dans mon projet qui peuvent dépendre d'une autre version de slf4j
. Mais je crois comprendre que la version spécifiée la plus proche de la racine de l'arbre est prise en compte.
Autres dépendances sur slf4j
choses connexes sont org.slf4j:jul-to-slf4j:jar:1.7.5:compile
, org.slf4j:log4j-over-slf4j:jar:1.7.5:compile
(dépendances directes) et org.slf4j:jcl-over-slf4j:jar:1.7.3:runtime
(dépendance transitive)
Je construis un war
dans ce projet Maven, et le pot de slf4j
inclus est à 1.6.2
dans l'archive . Je ne sais pas quoi faire pour m'assurer que je reçois la version de pot 1.7.5
et non 1.6.2
. Mise à jour: J'utilise maven 3.0.4
.
Mise à jour 2: Comme demandé, les journaux pom et de débogage sont ajoutés. Étant donné que les fichiers étaient énormes, je l'ai ajouté à la boîte de dépôt Dossier public: https://www.dropbox.com/sh/w1rtgvxvnt4jf18/lbiMIgwWD_
Il peut y avoir une autre dépendance _requiring_ version 1.6.2 spécifiquement ' [1.6.2] ' ... Heres un bon écrire: http://guntherpopp.blogspot.com/2011/02/understanding-maven -dependency.html –
Lucas
@Lucas comment quelqu'un exige spécifiquement 1.6.2? Si quelqu'un donnait la version [1.6.2] entre crochets, cela ne permettrait pas de résoudre les dépendances. Mais la construction est réussie. Btw, j'ai déjà lu ce document en essayant de chercher des solutions sur google :-) – Aman
Possible dupliquer: [Maven: supprimer une seule dépendance transitive] (http://stackoverflow.com/questions/816858/maven-remove-a-single -transitive-dependency) –