- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
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
您可能关注的文档
- M1单元测试及答案.doc
- 5.1.2同分母分数加减法例3.ppt
- M4U1第二课时.pptx
- 7下M1U1修改.ppt
- Unit6Howdoyoufeel第一课时教学设计.docx
- 认识东、南、西、北方向.docx
- _10轮椅上的霍金_.ppt
- “幼儿游戏观察”系列研训方案.doc
- “体罚”不妨变“训练”.doc
- §7.10能量守恒定律与能源1.ppt
- 北师大版小学数学三年级上册《寄书》教学设计.docx
- 统编版(部编版)语文二年级上册《雪孩子》教学设计.docx
- 统编版(部编版)语文二年级上册《八角楼上》教学设计.docx
- 北师大版小学数学三年级上册《长方形周长》教学设计.docx
- 北师大版小学数学三年级上册《丰收了》教学设计.docx
- 统编版(部编版)语文二年级上册《夜宿山寺》教学设计.docx
- 统编版(部编版)语文二年级上册《风娃娃》教学设计.docx
- 统编版(部编版)语文二年级上册《朱德的扁担》教学设计.docx
- 统编版(部编版)语文二年级上册《难忘的泼水节》教学设计.docx
- 统编版(部编版)语文二年级上册《纸船和风筝》教学设计.docx
文档评论(0)