您的位置:首页 > 其它

解决maven传递依赖中的版本冲突

2012-08-23 11:40 246 查看
找到javaeye上的一篇文章来排除项目重复依赖的问题,感觉这个插件不错,现摘录原文如下

传递依赖是maven最有特色的、最为方便的优点之一,可以省了很多配置。如a 依赖 b,b 依赖c  默认 a也会依赖 c。但是 也会带来隐患,如版本冲突。当然maven也考虑到解决办法,可以使用exclusions来排除相应的重复依赖。

但是我们还会遇到一个严重的问题,那就是,我怎么知道是哪个包的传递依赖产生的冲突 ?那该怎么办呢?当然,maven也会有相应的解决方案。

 首先,你要在pom.xml中加上maven-project-info-reports-plugin插件。

<reporting>

  <plugins>

   <plugin>

    <groupId>org.apache.maven.plugins</groupId>

    <artifactId>

     maven-project-info-reports-plugin

    </artifactId>

   </plugin>

 </reporting>

 然后再执行:mvn project-info-reports:dependencies 。生成项目依赖的报表,这样你就能够在报表中找出你版本冲突的相关性依赖了。

最后在相应的dependency中加上exclusions来排除相关的传递依赖。

例:

              <dependency>

                        <groupId>jaxen</groupId>

                        <artifactId>jaxen</artifactId>

                        <version>1.1.1</version>

                        <exclusions>

                                <exclusion>

                                        <groupId>com.ibm.icu</groupId>

                                        <artifactId>icu4j</artifactId>

                                </exclusion>

                        </exclusions>

                        <scope>runtime</scope>

                </dependency>

引用自:http://wolfchina.iteye.com/blog/239934

最后在target文件夹下会生成site的一个文件夹,里面有个dependencies.html详细介绍了依赖的版本等。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  maven dependencies 报表 c