Comment lire un arbre de dépendance Maven
J'ai servlet-api version 2.5 comme prévu dans pom.XML. Voici une partie de la sortie dependency: tree de mon projet. Que signifie "version gérée à partir de 2.3; portée gérée à partir de la compilation"?
[INFO] +- commons-logging:commons-logging:jar:1.1:compile
[INFO] | - javax.servlet:servlet-api:jar:2.5:provided (version managed from 2.3; scope managed from compile)
Cela signifie-t-il qu'il existe une dépendance transitive sur la version 2.3 sur mon classpath? Mon fichier WAR n'a pas du tout de jar servlet-api, mais j'utilise l'ancienne version de Spring 2.5.4. Je soupçonne que le framework Spring dépend de servlet-api 2.3.
2 réponses
Le message signifie essentiellement que le version
de servlet-api aurait été transitivement 2.3 (donc fondamentalement dans le pom de commons-logging ils définissent servlet-api avec la version 2.3), mais cette version 2.5 a été spécifiquement demandée dans votre projet, c'est ce qui a été utilisé.
Il en va de même pour la portée. Dans le pom de commons-logging, il est défini avec scope compile
, mais vous l'avez défini avec scope provided
, donc encore une fois c'est la portée qui a été utilisée.
Cela signifie que votre projet a remplacé les version
et scope
d'autres dépendances.