- 4
- 0
- 约 7页
- 2017-05-27 发布于河南
- 举报
Maven类包冲突终极解决小技若干
Maven 类包冲突终极解决小技若干
引言
Maven 对于新手来说是《步步惊心》,因为它包罗万象,博大精深,因为当你初来乍到时,
你就像一个进入森林的陌生访客一样迷茫。
Maven 对于老手来说是《真爱配方》,因为它无所不能,利如刀锋,使用Maven 做开发,
如饮美酒如悦美人。
Maven 对于新手来说,最痛苦的一件事莫过于包之间的冲突,由于Maven 的依赖传递性,
当你引入一个依赖类时,其身后的依赖类也一起如过江之鲫纷至沓来了。
举个栗子
A 依赖于B 及C,而B 又依赖于X 、Y ,而C 依赖于X 、M,则A 除引B 及C 的依赖包下,
还会引入X ,Y ,M 的依赖包(一般情况下了,Maven 可通过scope等若干种方式控制传
递依赖)。
这里有一个需要特别注意的,即B 和C 同时依赖于X ,假设B 依赖于X 的1.0 版本,而C
依赖于X 的2.0 版本,A 究竟依赖于X 的1.0 还是2.0 版本呢?
这就看Classloader 的加载顺序了,假设Classloader 先加载X_1.0 ,而它就不会再加载X_2.0
了,如果A 恰恰希望使用X_2.0 呢,血案就这样不期而遇了。
我常抡的三板斧
第一板斧:找到传递依赖的鬼出在哪里?
dependency:tree 是把照妖照,pom.xml 用它照照,所有传递性依赖都将无处遁形,并且会
以层级树方式展现,非常直观。
以下就是执行dependency:tree 后的一个输出:
引用
[INFO] maven-dependency-plugin:2.1:tree (default-cli) @ euler-foundation
[INFO] com.hsit:euler-foundation:jar:0.9.0.1-SNAPSHOT
[INFO] +- com.rop:rop:jar:1.0.1:compile
[INFO] | +- org.slf4j:slf4j-api:jar:1.7.5:compile
[INFO] | +- org.slf4j:slf4j-log4j12:jar:1.7.5:compile
[INFO] | +- log4j:log4j:jar:1.2.16:compile
[INFO] | +- commons-lang:commons-lang:jar:2.6:compile
[INFO] | +- commons-codec:commons-codec:jar:1.6:compile
[INFO] | +- javax.validation:validation-api:jar:1.0.0.GA:compile
[INFO] | +- org.hibernate:hibernate-validator:jar:4.2.0.Final:compile
[INFO] | +- org.codehaus.jackson:jackson-core-asl:jar:1.9.5:compile
[INFO] | +- org.codehaus.jackson:jackson-mapper-asl:jar:1.9.5:compile
[INFO] | +- org.codehaus.jackson:jackson-jaxrs:jar:1.9.5:compile
[INFO] | +- org.codehaus.jackson:jackson-xc:jar:1.9.5:compile
[INFO] | \- com.fasterxml.jackson.dataformat:jackson-dataformat-xml:jar:2.2.3:compile
[INFO] | +- com.fasterxml.jackson.core:jackson-core:jar:2.2.3:compile
[INFO] | +- com.fasterxml.jackson.core:jackson-annotations:jar:2.2.3:compile
[INFO] | +- com.fasterxml.jackson.core:jackson-databind:jar:2.2.3:compile
[INFO] | +-
com.fasterxml.jackson.module:jackson-module-jaxb-annotations:jar:2.2.3:compile
[INFO] | \- org.codehaus.woodstox:stax2-api:jar:3.1.1:compile
[INF
您可能关注的文档
最近下载
- 工业机器人离线编程与仿真 教案 项目1--4 仿真软件的安装与工作站的构建---仿真软件的应用.docx VIP
- 人文艺术欣赏ppt课件(优质ppt).pptx VIP
- 伤口评估与护理记录PPT课件.pptx
- 骨科手术高龄患者并发症及相关护理措施-来源:现代养生(下半月版)(第2018001期)-河北省医疗气功医院.pdf VIP
- 小学一二年级全册体育教案.pdf VIP
- 大数据环境下网络安全问题探讨.doc VIP
- 论司法确认程序审查规则检视与优化.docx VIP
- 2022年中国社会科学院法律史考博真题、考博参考书,考博资料,难度分析.pdf VIP
- 大数据背景下网络信息安全问题的研究.doc VIP
- 《绘本赏析与阅读指导》学前教育专业全套教学课件.pptx
原创力文档

文档评论(0)