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.

45
demandé sur Peter Mortensen 2013-11-25 14:08:02

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.

43
répondu DB5 2013-11-25 12:11:27

Cela signifie que votre projet a remplacé les version et scope d'autres dépendances.

5
répondu lichengwu 2018-06-01 08:13:27