解决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  查看项目依赖情况。

 

posted on 2016-07-15 10:02  jessezeng  阅读(8852)  评论(0编辑  收藏  举报

导航