[INFO] \- com.sm:elasticsearch5-boot-starter:jar:1.0.6:compile
[INFO] +- (org.elasticsearch:elasticsearch:jar:5.0.0:compile - version managed from 5.6.11; omitted for duplicate)
[INFO] \- com.esclient:elasticsearch-client:jar:5.6.11.11:compile
[INFO] \- org.elasticsearch.client:elasticsearch-rest-high-level-client:jar:5.6.11:compile
[INFO] +- (org.elasticsearch:elasticsearch:jar:5.0.0:compile - version managed from 5.6.11; omitted for duplicate)
[INFO] +- org.elasticsearch.plugin:parent-join-client:jar:5.6.11:compile
[INFO] | \- (org.elasticsearch:elasticsearch:jar:5.0.0:compile - version managed from 5.6.11; omitted for duplicate)
[INFO] \- org.elasticsearch.plugin:aggs-matrix-stats-client:jar:5.6.11:compile
[INFO] \- (org.elasticsearch:elasticsearch:jar:5.0.0:compile - version managed from 5.6.11; omitted for duplicate)
version managed from 5.6.11
这里的意思结合依赖树的输出,这句话的意思就是elasticsearch5-boot-starter依赖了5.6.11版本的elasticsearch,但是当前项目里明确指定了使用5.0.0版本的es。
omitted for duplicate
版本号相同,当前jar包引入的被忽略。
omitted for conflict with xxxx
说明和别的jar包版本冲突了,而该行的jar包不会被引入
目前还不确定的信息
exclusions managed
optionality managed from false
[INFO] \- com.mogujie.sm:elasticsearch5-boot-starter:jar:1.0.6:compile[INFO] +- (org.elasticsearch:elasticsearch:jar:5.0.0:compile - version managed from 5.6.11; omitted for duplicate)[INFO] \...
ClassNotFound
// class 名字会随着冲突的不同而不同
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.tracing.SpanReceiverHost
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
文章目录查看方式
CMD命令行下,进入pom.xml所在的目录,可以是父模块的目录,也可以是子模块的目录,区别在于前者会按子模块分级,展示所有模块的依赖树,后者只查子模块自身相关的依赖树,后者的结果是前者的一个子集。
通过控制台查看:
mvn dependency:tree
如果要输出到文件,找到pom文件的位置 进入命令行
mvn dependency:tree >d:/tree.txt
只查看包含指定的jar包
mvn dependency:tree -Dverbose -
springboot工程使用maven-assembly-plugin插件打包程序后,启动报jar包冲突,报错日志如下:
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/api_streaming/streaming-api-1.0/lib/logback-cla...
Maven对于新手来说是《步步惊心》,因为它包罗万象,博大精深,因为当你初来乍到时,你就像一个进入森林的陌生访客一样迷茫。
Maven对于老手来说是《真爱配方》,因为它无所不能,利如刀锋,使用Maven做开发,如饮美酒如悦美人。
Maven对于新手来说,最痛苦的一件事莫过于包之间的冲突,由于Maven的依赖传递性,当你引入一个依赖类时,其身后的依赖类也一起如过江之鲫纷至沓来了。
A依赖于B及C,而B又依赖于X、Y,而C依赖于X、M,则A除引B及C的依赖包下,还会引入X,Y,M的依赖包(一般情况下了,M