maven依赖顺序导致jar包冲突,maven依赖冲突解决方式
两把利斧解决专家的类包冲突问题春天,企业应用-爪哇语论坛
通过想法的专家依赖分析将不需要的依赖排除掉
打开专家的pom.xml,在某个属国中通过右键菜单:maven-显示依赖关系打开分析的图形化页面,如下所示:
通过菜单的排除即解决这个间接依赖。
通过这个依赖树,我们还可以看到单元测试还通过"统一-春天"的依赖间接载入了,如下所示:
从上面的依赖树中,我们可以看出单元测试通过统一-弹簧的统一数据库间接引入了,由于我的项目都不需要数据库的测试,因此,可以把统一数据库项整个排除掉。
下面,是处理完成后的pom.xml关键片断:
可扩展标记语言代码依赖关系groupId组织。unitils/groupId项目Id uniti ls-TestNG/项目id版本{ uniti ls。版本}/版本范围测试/范围排除排除工件id JUnit/groupId/排除/依赖关系依赖关系groupId组织。unitils/groupId工件Id uniti ls-spring/工件id版本{ uniti ls。版本}/版本范围测试/范围排除工件id unit ils-数据库/工件id groupId org。unitils/groupId/exclusion/exclusions依赖关系
groupId org.unitils /groupId
artifactId unitils-TestNG/artifactId
版本${unitils.version} /version
范围测试/范围
不包括的项目:如接受服务项目是由投保以前已患有的疾病或伤害引致的
排除
artifactId junit /artifactId
groupId junit /groupId
/排除
/排除
/依赖关系
属国
groupId org.unitils /groupId
项目的名称单位-弹簧/artifactId
版本${unitils.version} /version
范围测试/范围
不包括的项目:如接受服务项目是由投保以前已患有的疾病或伤害引致的
排除
项目的名称单位-数据库/artifactId
groupId org.unitils /groupId
/排除
/排除
/依赖关系
/依赖关系
这样,被间接隐式引入的单元测试就被我们排除在外了。
有时通过想法的依赖分析工具产生的树不够全,这时就需要使用传送非相关性:树来查看依赖树了。
通过传送非相关性:树查看依赖树
引用传送非相关性:树
以下是使用这个工具产生的依赖树:
引用e: 01 workspace chenxh 09 research ROP ROP mvn依赖关系:树
[警告]
[警告]建立有效设置时遇到一些问题
[警告]"插件库。插件库。id "不能是“本地”,此标识符是为本地是保留的
托里,将它用于其他存储库会破坏您的存储库元数据. C: Users Administrator 。m2 设置。x
[警告]
[信息]扫描项目.
[信息]
[信息]
[信息]构建ROP 1.0-快照
[信息]
[信息]
[信息]-maven-dependency-plugin:2.1:tree(默认-cli) @ rop -
[资讯]com。ROP:ROP:jar:1.0-快照
[信息]-javax。验证:验证-API:jar:1。0 .0 .遗传算法:编译
org。hibernate:hibernate-validator:jar:42 .0 .最终:编译
[信息]-组织。代号豪斯。杰克逊:杰克逊-核心-美国手语:jar:1。9 .5:编译
[信息]-组织。代号豪斯。杰克逊:杰克逊-mapper-ASL:jar:1。9 .5:编译
[信息]-org。科德豪斯。杰克逊:杰克逊-杰克斯:jar:1。9 .5:编译
[信息]-org。代号豪斯。杰克逊:杰克逊-xc:jar:1。9 .5:编译
[信息]-com。更快的XML。杰克逊。数据格式:Jackson-数据格式-XML:jar:2。0 .0-RC2:编译
【资讯】-com。更快的XML。杰克逊。核心:杰克逊-核心:罐子:2。0 .0-RC2:编译
【资讯】-com。更快的XML。杰克逊。核心:杰克逊-注解:罐子:2。0 .0-RC2:编译
【资讯】-com。更快的XML。杰克逊。核心:杰克逊-数据绑定:jar:2。0 .0-RC2:编译
【资讯】-com。更快的XML。杰克逊。模块:Jackson-module-JAXB-注解:jar:2。0 .0-RC2:编译
[信息] -org。科德豪斯。木材斯托克:sta x2-API:jar:3。1 .1:编译
[信息] -javax。XML。流:StAX-API:jar:1.0-2:编译
[信息]-org。slf4j:slf4j-API:jar:1。6 .1:编译
[信息]-org。slf4j:slf4j-log4j 12:jar:1。6 .1:编译
[信息] - log4j:log4j:jar:1.2.16:编译
[信息]-组织。spring框架:spring-core:jar:3。1 .1 .发布:编译
[信息]-组织。spring框架:spring-ASM:jar:3。1 .1 .发布:编译
[信息] -公共日志:公共日志:jar:1.1.1:编译
[信息]-组织。spring框架:spring上下文:jar:3。1 .1 .发布:编译
[信息]-组织。spring框架:spring-AOP:jar:3。1 .1 .发布:编译
[信息]-组织。spring框架:spring-beans:jar:3。1 .1 .发布:编译
[信息] -org。spring框架:spring-expression:jar:3。1 .1 .发布:编译
[信息]-组织。spring框架:spring-上下文-支持:jar:3。1 .1 .发布:编译
[信息]-组织。spring框架:spring-web:jar:3。1 .1 .发布:编译
[信息] -aopalliance:aopalliance:jar:1.0:编译
[信息]-组织。spring框架:spring-test:jar:3。1 .1 .发布:编译
[信息]-组织。spring框架:spring-web MVC:jar:3。1 .1 .发布:编译
[信息]-org。TestNG:TestNG:jar:6.3:测试
[信息]-org。beanshell:bsh:jar:2.0b 4:测试
[信息]-com。beust:jcommander:jar:1.12:测试
[信息] -org。YAML:蛇:罐子:1.6:测试
[信息]-org。模拟伊藤:模拟伊藤-all:jar:1。8 .5:测试
[信息]-javax。servlet:servlet-API:jar:2.5:已提供
[信息]-org。unitils:unitils-核心:罐子:3.3:测试
[信息]-commons-lang:commons-lang:jar:2.3:test
[信息] -公共资源-集合:公共资源-集合:罐子:3.2:测试
[信息] - ognl:ognl:jar:2.6.9:test
[信息]-org。unitils:unitils-TestNG:jar:3.3:test
[信息] -org。TestNG:TestNG:jar:JDK 15:5.8:测试
[信息] - junit:junit:jar:3.8.1:test
[信息]-org。unitils:unitils-弹簧:震击器:3.3:测试
[信息]-组织。spring框架:spring-tx:jar:2。5 .2:测试
[信息]-org。unitils:unitils-数据库:jar:3.3:测试
[信息]-org。统一数据库维护者:jar:3.3:测试
[信息]-org。冬眠:冬眠:jar:3。2 .5 .遗传:测试
[信息] -net。SF。ehcache:ehcache:jar:1。2 .3:测试
[信息] -ASM:ASM-attrs:jar:1。5 .3:测试
[信息] - dom4j:dom4j:jar:1.6.1:test
[信息] - antlr:antlr:jar:2.7.6:测试
[信息] - cglib:cglib:jar:2.1_3:test
[信息] - asm:asm:jar:1.5.3:test
[信息] -org。dbunit:dbunit:jar:22 .2:测试
[信息] - junit插件:junit插件:罐子:1.4:测试
[信息] -Xerces:xercesImpl:jar:2。6 .2:测试
[信息] -Xerces:xmlParserAPIs:jar:2。6 .2:测试
[信息] -兴趣点:兴趣点:罐子:2 .5 .1-最终版-20040804:测试
[信息] -org。slf4j:slf4j-nop:jar:1。4 .3:测试
[信息]-commons-dbcp:commons-dbcp:jar:1。2 .2:测试
[信息] -公共资源池:公共资源池:罐子:1.3:测试
[信息]-org。spring框架:spring-JDBC:jar:25 .2:测试
[信息]
[信息]建立成功
[信息]
[信息]总时间:8.250秒
[信息]完成时间:Fri时间2012年6月8日09时08分09秒
【信息】最终内存:7米/245米
[信息]
我原来一个使用想法分析不出的隐式依赖就是通用传送非相关性:树找到的。
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。