Please excuse if this a dump question but I have searched a lot and couldn't understand how to actually read Maven Dependency tee. I know this command is used to figure out the dependencies but how? This is the result of mvn dependency:tree -Dverbose
in my project.
[INFO] +- org.springframework:spring-core:jar:4.0.2.RELEASE:compile [INFO] | \- commons-logging:commons-logging:jar:1.1.3:compile [INFO] +- org.springframework:spring-web:jar:4.0.2.RELEASE:compile [INFO] | +- (org.springframework:spring-aop:jar:4.0.2.RELEASE:compile - omitted for duplicate) [INFO] | +- org.springframework:spring-beans:jar:4.0.2.RELEASE:compile [INFO] | | \- (org.springframework:spring-core:jar:4.0.2.RELEASE:compile - omitted for duplicate) [INFO] | +- (org.springframework:spring-context:jar:4.0.2.RELEASE:compile - omitted for duplicate) [INFO] | \- (org.springframework:spring-core:jar:4.0.2.RELEASE:compile - omitted for duplicate) [INFO] +- org.springframework:spring-webmvc:jar:4.0.2.RELEASE:compile [INFO] | +- (org.springframework:spring-beans:jar:4.0.2.RELEASE:compile - omitted for duplicate) [INFO] | +- (org.springframework:spring-context:jar:4.0.2.RELEASE:compile - omitted for duplicate) [INFO] | +- (org.springframework:spring-core:jar:4.0.2.RELEASE:compile - omitted for duplicate) [INFO] | +- org.springframework:spring-expression:jar:4.0.2.RELEASE:compile [INFO] | | \- (org.springframework:spring-core:jar:4.0.2.RELEASE:compile - omitted for duplicate) [INFO] | \- (org.springframework:spring-web:jar:4.0.2.RELEASE:compile - omitted for duplicate) [INFO] +- org.springframework:spring-context:jar:4.0.2.RELEASE:compile [INFO] | +- (org.springframework:spring-aop:jar:4.0.2.RELEASE:compile - omitted for duplicate) [INFO] | +- (org.springframework:spring-beans:jar:4.0.2.RELEASE:compile - omitted for duplicate) [INFO] | +- (org.springframework:spring-core:jar:4.0.2.RELEASE:compile - omitted for duplicate) [INFO] | \- (org.springframework:spring-expression:jar:4.0.2.RELEASE:compile - omitted for duplicate) [INFO] +- org.springframework:spring-aop:jar:3.0.0.RC3:compile [INFO] | +- aopalliance:aopalliance:jar:1.0:compile [INFO] | +- org.springframework:spring-asm:jar:3.0.0.RC3:compile [INFO] | +- (org.springframework:spring-beans:jar:3.0.0.RC3:compile - omitted for conflict with 4.0.2.RELEASE) [INFO] | \- (org.springframework:spring-core:jar:3.0.0.RC3:compile - omitted for conflict with 4.0.2.RELEASE) [INFO] +- org.springframework:spring-tx:jar:4.0.2.RELEASE:compile [INFO] | +- (org.springframework:spring-beans:jar:4.0.2.RELEASE:compile - omitted for duplicate) [INFO] | \- (org.springframework:spring-core:jar:4.0.2.RELEASE:compile - omitted for duplicate) [INFO] +- org.springframework:spring-orm:jar:4.0.2.RELEASE:compile [INFO] | +- (org.springframework:spring-beans:jar:4.0.2.RELEASE:compile - omitted for duplicate) [INFO] | +- (org.springframework:spring-core:jar:4.0.2.RELEASE:compile - omitted for duplicate) [INFO] | +- org.springframework:spring-jdbc:jar:4.0.2.RELEASE:compile [INFO] | | +- (org.springframework:spring-beans:jar:4.0.2.RELEASE:compile - omitted for duplicate) [INFO] | | +- (org.springframework:spring-core:jar:4.0.2.RELEASE:compile - omitted for duplicate) [INFO] | | \- (org.springframework:spring-tx:jar:4.0.2.RELEASE:compile - omitted for duplicate) [INFO] | \- (org.springframework:spring-tx:jar:4.0.2.RELEASE:compile - omitted for duplicate) [INFO] +- org.springframework.security:spring-security-core:jar:3.2.2.RELEASE:compile [INFO] | +- (aopalliance:aopalliance:jar:1.0:compile - omitted for duplicate) [INFO] | +- (org.springframework:spring-aop:jar:3.2.8.RELEASE:compile - omitted for conflict with 3.0.0.RC3) [INFO] | +- (org.springframework:spring-beans:jar:3.2.8.RELEASE:compile - omitted for conflict with 4.0.2.RELEASE) [INFO] | +- (org.springframework:spring-context:jar:3.2.8.RELEASE:compile - omitted for conflict with 4.0.2.RELEASE) [INFO] | +- (org.springframework:spring-core:jar:3.2.8.RELEASE:compile - omitted for conflict with 4.0.2.RELEASE) [INFO] | \- (org.springframework:spring-expression:jar:3.2.8.RELEASE:compile - omitted for conflict with 4.0.2.RELEASE) [INFO] +- org.springframework.security:spring-security-web:jar:3.2.2.RELEASE:compile [INFO] | +- (aopalliance:aopalliance:jar:1.0:compile - omitted for duplicate) [INFO] | +- (org.springframework.security:spring-security-core:jar:3.2.2.RELEASE:compile - omitted for duplicate) [INFO] | +- (org.springframework:spring-beans:jar:3.2.8.RELEASE:compile - omitted for conflict with 4.0.2.RELEASE) [INFO] | +- (org.springframework:spring-context:jar:3.2.8.RELEASE:compile - omitted for conflict with 4.0.2.RELEASE) [INFO] | +- (org.springframework:spring-core:jar:3.2.8.RELEASE:compile - omitted for conflict with 4.0.2.RELEASE) [INFO] | +- (org.springframework:spring-expression:jar:3.2.8.RELEASE:compile - omitted for conflict with 4.0.2.RELEASE) [INFO] | \- (org.springframework:spring-web:jar:3.2.8.RELEASE:compile - omitted for conflict with 4.0.2.RELEASE) [INFO] +- org.springframework.security:spring-security-config:jar:3.2.2.RELEASE:compile [INFO] | +- (aopalliance:aopalliance:jar:1.0:compile - omitted for duplicate) [INFO] | +- (org.springframework.security:spring-security-core:jar:3.2.2.RELEASE:compile - omitted for duplicate) [INFO] | +- (org.springframework:spring-aop:jar:3.2.8.RELEASE:compile - omitted for conflict with 3.0.0.RC3) [INFO] | +- (org.springframework:spring-beans:jar:3.2.8.RELEASE:compile - omitted for conflict with 4.0.2.RELEASE) [INFO] | +- (org.springframework:spring-context:jar:3.2.8.RELEASE:compile - omitted for conflict with 4.0.2.RELEASE) [INFO] | \- (org.springframework:spring-core:jar:3.2.8.RELEASE:compile - omitted for conflict with 4.0.2.RELEASE) [INFO] +- javax.servlet:javax.servlet-api:jar:3.1.0:compile [INFO] +- org.glassfish.jersey.core:jersey-server:jar:2.6:compile [INFO] | +- org.glassfish.jersey.core:jersey-common:jar:2.6:compile [INFO] | | +- (javax.ws.rs:javax.ws.rs-api:jar:2.0:compile - omitted for duplicate) [INFO] | | +- (javax.annotation:javax.annotation-api:jar:1.2:compile - omitted for duplicate) [INFO] | | +- org.glassfish.jersey.bundles.repackaged:jersey-guava:jar:2.6:compile [INFO] | | +- (org.glassfish.hk2:hk2-api:jar:2.2.0:compile - omitted for duplicate) [INFO] | | +- (org.glassfish.hk2.external:javax.inject:jar:2.2.0:compile - omitted for duplicate) [INFO] | | +- (org.glassfish.hk2:hk2-locator:jar:2.2.0:compile - omitted for duplicate) [INFO] | | \- org.glassfish.hk2:osgi-resource-locator:jar:1.0.1:compile [INFO] | +- org.glassfish.jersey.core:jersey-client:jar:2.6:compile [INFO] | | +- (org.glassfish.jersey.core:jersey-common:jar:2.6:compile - omitted for duplicate) [INFO] | | +- (javax.ws.rs:javax.ws.rs-api:jar:2.0:compile - omitted for duplicate) [INFO] | | +- (org.glassfish.hk2:hk2-api:jar:2.2.0:compile - omitted for duplicate) [INFO] | | +- (org.glassfish.hk2.external:javax.inject:jar:2.2.0:compile - omitted for duplicate) [INFO] | | \- (org.glassfish.hk2:hk2-locator:jar:2.2.0:compile - omitted for duplicate) [INFO] | +- javax.ws.rs:javax.ws.rs-api:jar:2.0:compile [INFO] | +- javax.annotation:javax.annotation-api:jar:1.2:compile [INFO] | +- org.glassfish.hk2:hk2-api:jar:2.2.0:compile [INFO] | | +- org.glassfish.hk2:hk2-utils:jar:2.2.0:compile [INFO] | | \- org.glassfish.hk2.external:aopalliance-repackaged:jar:2.2.0:compile [INFO] | +- org.glassfish.hk2.external:javax.inject:jar:2.2.0:compile [INFO] | +- org.glassfish.hk2:hk2-locator:jar:2.2.0:compile [INFO] | | +- (org.glassfish.hk2.external:javax.inject:jar:2.2.0:compile - omitted for duplicate) [INFO] | | +- (org.glassfish.hk2.external:aopalliance-repackaged:jar:2.2.0:compile - omitted for duplicate) [INFO] | | +- (org.glassfish.hk2:hk2-api:jar:2.2.0:compile - omitted for duplicate) [INFO] | | +- (org.glassfish.hk2:hk2-utils:jar:2.2.0:compile - omitted for duplicate) [INFO] | | \- (org.javassist:javassist:jar:3.18.1-GA:compile - omitted for conflict with 3.15.0-GA) [INFO] | \- javax.validation:validation-api:jar:1.1.0.Final:compile [INFO] +- com.sun.jersey.contribs:jersey-spring:jar:1.18.1:compile [INFO] | +- com.sun.jersey:jersey-servlet:jar:1.18.1:compile [INFO] | | \- com.sun.jersey:jersey-server:jar:1.18.1:compile [INFO] | | \- com.sun.jersey:jersey-core:jar:1.18.1:compile [INFO] | \- (org.springframework:spring-aop:jar:3.0.0.RC3:compile - omitted for duplicate) [INFO] +- commons-dbcp:commons-dbcp:jar:1.3:compile [INFO] | \- commons-pool:commons-pool:jar:1.5.4:compile [INFO] +- org.hibernate:hibernate-core:jar:4.0.1.Final:compile [INFO] | +- commons-collections:commons-collections:jar:3.2.1:compile [INFO] | +- antlr:antlr:jar:2.7.7:compile [INFO] | +- org.jboss.spec.javax.transaction:jboss-transaction-api_1.1_spec:jar:1.0.0.Final:compile [INFO] | +- dom4j:dom4j:jar:1.6.1:compile [INFO] | | \- xml-apis:xml-apis:jar:1.0.b2:compile [INFO] | +- org.hibernate.javax.persistence:hibernate-jpa-2.0-api:jar:1.0.1.Final:compile [INFO] | +- org.jboss.logging:jboss-logging:jar:3.1.0.CR2:compile [INFO] | +- org.javassist:javassist:jar:3.15.0-GA:compile [INFO] | \- org.hibernate.common:hibernate-commons-annotations:jar:4.0.1.Final:compile [INFO] | \- (org.jboss.logging:jboss-logging:jar:3.1.0.CR2:compile - omitted for duplicate) [INFO] +- cglib:cglib:jar:2.2.2:compile [INFO] | \- asm:asm:jar:3.3.1:compile [INFO] +- mysql:mysql-connector-java:jar:5.1.22:compile [INFO] +- org.hibernate:hibernate-validator:jar:4.2.0.Final:compile [INFO] | +- (javax.validation:validation-api:jar:1.0.0.GA:compile - omitted for conflict with 1.1.0.Final) [INFO] | \- (org.slf4j:slf4j-api:jar:1.6.1:compile - omitted for conflict with 1.7.5) [INFO] +- com.sun.xml.bind:jaxb-xjc:jar:2.2.6:compile [INFO] +- com.sun.xml.bind:jaxb-impl:jar:2.2.6:compile [INFO] +- javax.xml.bind:jaxb-api:jar:2.2.6:compile [INFO] +- javax.servlet:jstl:jar:1.2:compile [INFO] +- org.apache.tomcat:jsp-api:jar:6.0.32:provided [INFO] | +- org.apache.tomcat:el-api:jar:6.0.32:provided [INFO] | \- org.apache.tomcat:servlet-api:jar:6.0.32:provided [INFO] +- log4j:log4j:jar:1.2.15:compile [INFO] | \- javax.mail:mail:jar:1.4:compile [INFO] | \- javax.activation:activation:jar:1.1:compile [INFO] +- org.slf4j:slf4j-api:jar:1.7.5:compile [INFO] +- org.slf4j:slf4j-simple:jar:1.6.4:compile [INFO] | \- (org.slf4j:slf4j-api:jar:1.6.4:compile - omitted for conflict with 1.7.5) [INFO] \- org.slf4j:slf4j-log4j12:jar:1.7.5:compile [INFO] +- (org.slf4j:slf4j-api:jar:1.7.5:compile - omitted for duplicate) [INFO] \- (log4j:log4j:jar:1.2.17:compile - omitted for conflict with 1.2.15) [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 6.667 s [INFO] Finished at: 2014-03-12T14:37:46+01:00 [INFO] Final Memory: 9M/16M [INFO] ------------------------------------------------------------------------
As marked as solution in this question: IncompatibleClassChangeError: class ClassMetadataReadingVisitor has interface ClassVisitor as super class how can I check for the dependent jars and conflicts?
A project's dependency tree can be filtered to locate specific dependencies. For example, to find out why Velocity is being used by the Maven Dependency Plugin, we can execute the following in the project's directory: mvn dependency:tree -Dincludes=velocity:velocity.
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.
2) Find pom. xml of your artifact. 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.
It's a dependency tree. The things below a listing are dependencies of their parent.
[INFO] +- org.springframework:spring-core:jar:4.0.2.RELEASE:compile [INFO] | \- commons-logging:commons-logging:jar:1.1.3:compile
Spring-core depends on commons-logging.
[INFO] +- org.glassfish.jersey.core:jersey-server:jar:2.6:compile [INFO] | +- org.glassfish.jersey.core:jersey-common:jar:2.6:compile [INFO] | | +- (javax.ws.rs:javax.ws.rs-api:jar:2.0:compile - omitted for duplicate) [INFO] | | +- (javax.annotation:javax.annotation-api:jar:1.2:compile - omitted for duplicate)
Jersey-server depends on jersey-common. Jersey-common depends on rs-api and annotation-api, etc.
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