美文网首页
解决maven传递依赖中的版本冲突

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

作者: 李2牛 | 来源:发表于2018-07-11 11:31 被阅读0次

    传递依赖是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中加上exclusion标签来排除相关的传递依赖。

    例:

                  <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

    相关文章

      网友评论

          本文标题:解决maven传递依赖中的版本冲突

          本文链接:https://www.haomeiwen.com/subject/qvfhpftx.html