解决maven依赖传递中的版本冲突问题
通常情况下,我们都比较喜欢使用maven进行项目管理,要加个依赖包也非常简单,不需要到处去下载jar包,当然除了maven之外,也还有一些非常不错的工具。在使用maven进行项目依赖管理的时候,有时候会出现一种情况,多个不同的开源组件都依赖了另外一个组件,但是这个组件的版本却不一样,在maven依赖中就会看到两个版本不同的jar,通常我们可以根据实际情况排除其中一个,当然前提是这个版本没有太大的差异,兼容。老规矩,直接了当说怎么做吧:
1、手工添加配置:在dependency标签里使用子标签exclusions,比如A组件使用了zookeeper 3.3.3的依赖包,B组件使用了zookeeper 3.3.6的依赖包,这时候我们要排除3.3.3这个版本可以这样做:
<dependency> <groupId>com.xxx</groupId> <artifactId>A</artifactId> <exclusions> <exclusion> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> </exclusion> </exclusions> </dependency>
2、借助工具排除,通过eclipse的pom编辑工具:
这样就可以解决同一个组件多个版本问题,但这个是有前提的,前面也已经提到过了。。。
另外也可以使用命令mvn project-info-reports:dependencies 查看项目依赖情况。
所有评论(0)