Java 如何理解Maven依赖树
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/22357179/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
How to understand Maven dependency tree
提问by R. Rahul
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.
如果这是一个转储问题,但我已经搜索了很多并且无法理解如何实际阅读Maven Dependency tee,请原谅。我知道这个命令是用来找出依赖关系的,但是怎么做?这是mvn dependency:tree -Dverbose
在我的项目中的结果。
[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 classhow can I check for the dependent jars and conflicts?
在这个问题中标记为解决方案:IncompatibleClassChangeError: class ClassMetadataReadingVisitor has interface ClassVisitor as super classhow can I check for thedependentjars and conflict?
采纳答案by Dave Newton
... 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.
Spring-core 依赖于 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, annotation-api, etc.
Jersey-server 依赖于 jersey-common。Jersey-common 依赖于 rs-api、annotation-api 等。
回答by axtavt
The answer you linked to says that you should look for a version conflict between spring-core
and spring-asm
.
您链接的答案说您应该查找spring-core
和之间的版本冲突spring-asm
。
If you search for these libraries in the tree, you'll find that most of Spring components including spring-core
are 4.0.2.RELEASE
, whereas spring-asm
is 3.0.0.RC3
. Also you can see that offending spring-asm
is a transitive dependency of the following top-level dependency:
如果您在树中搜索这些库,您会发现大多数 Spring 组件包括spring-core
are 4.0.2.RELEASE
,而spring-asm
is 3.0.0.RC3
。您还可以看到违规spring-asm
是以下顶级依赖项的传递依赖项:
[INFO] +- org.springframework:spring-aop:jar:3.0.0.RC3:compile
So, now you need to find it in pom.xml
and correct its version.
因此,现在您需要在其中找到它pom.xml
并更正其版本。