我如何阅读Maven依赖关系树

我有servlet-api版本2.5作为pom.xml中提供的范围。 这里是我的项目的依赖项的一部分:树的输出。 “从2.3版本pipe理的版本;从编译pipe理的范围”是什么意思?

[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) 

这是否意味着在我的类path上有2.3版本的传递依赖? 我的WAR文件根本没有servlet-api jar,但是我使用旧版本的Spring 2.5.4。 我怀疑Spring框架依赖于servlet-api 2.3。

这个消息基本上意味着servlet-api的version会过渡到2.3(所以基本上在commons-logging的pom中它们定义了2.3版本的servlet-api),但是2.5版本在你的项目中被特别要求,所以这就是被使用。

范围也一样。 在commons-logging的pom中,它是用scope compile来定义的,但是你已经用scope provided它的定义,所以这也是使用的范围。

这意味着你的项目已经超越了其他依赖的versionscope