Как я прочитал дерево зависимостей Maven
У меня есть версия сервлета-api 2.5 в виде предоставленной области в pom.xml. Вот часть зависимости: tree output моего проекта. Что означает "версия, управляемая из 2.3, сфера, управляемая из компиляции", означает?
[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)
Означает ли это, что существует некоторая транзитивная зависимость от версии 2.3 в моем пути к классам? У моего WAR файла вообще нет сервлета-api jar, но я использую старую версию Spring 2.5.4. Я подозреваю, что структура Spring зависит от servlet-api 2.3.
Ответы
Ответ 1
В основном сообщение означает, что version
для сервлета-api будет транзитивно равняться 2.3 (так что в основном в commons-logging pom они определяют servlet-api с версией 2.3), но эта версия 2.5 была специально задана в вашем проекте, так что это было использовано.
То же самое касается области. В commons-logging pom определяется с областью compile
, но вы определили ее с областью provided
, поэтому снова это область, которая была использована.
Ответ 2
Это означает, что ваш проект переопределил version
и scope
из других зависимостей.