I have servlet-api version 2.5 as provided scope in pom.xml. Here is part of the dependency:tree output of my project. What does "version managed from 2.3; scope managed from compile" mean?
[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) Does that mean there is some transitive dependency on version 2.3 on my classpath? My WAR file does not have servlet-api jar at all, but I do use old version of Spring 2.5.4. I suspect the Spring framework depends on servlet-api 2.3.
Find it using maven infrastructure. Go to https://search.maven.org/ and enter your groupId and artifactId. Or you can go to https://repo1.maven.org/maven2/ and navigate first using plugins groupId, later using artifactId and finally using its version.
How to get the Maven Dependency Tree of a Project. We can run mvn dependency:tree command in the terminal to print the project dependency tree. For our example, I will be using the Mockito Tutorial project. You can download the project from the GitHub repository.
mvn dependency:tree Command The main purpose of the dependency:tree goal is to display in form of a tree view all the dependencies of a given project. To exemplify the use of this command, we are going to use the same project created in this article: build REST API with Spring Boot.
The message basically means that the version of servlet-api would have transitively been 2.3 (so basically in commons-logging's pom they define servlet-api with version 2.3), but that version 2.5 was specifically asked for in your project, so that is what was used.
Same goes for the scope. In commons-logging's pom it is defined with scope compile, but you have it defined with scope provided, so again that is the scope that was used.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With