使用Maven Helper解决maven依赖冲突

Maven Helper可以帮助程序员快速定位依赖冲突并且解决它们
使用Maven Helper解决maven依赖冲突_第1张图片
例如:
pom.xml

<dependency>
    <groupId>org.apache.flinkgroupId>
    <artifactId>flink-table-planner-blink_${scala.binary.version}artifactId>
    <version>${flink.version}version>
    <exclusions>
        <exclusion>
            <groupId>com.google.guavagroupId>
            <artifactId>guavaartifactId>
        exclusion>
    exclusions>
    <scope>providedscope>
dependency>
<dependency>
   <groupId>org.apache.hivegroupId>
   <artifactId>hive-execartifactId>
   <version>${hive.version}version>
dependency>

这里的2个依赖存在冲突,直接打包运行会有冲突导致不可运行,使用 Dependency Analyzer查看依赖详情
使用Maven Helper解决maven依赖冲突_第2张图片
点击 [Jump to Left Tree],查看依赖树:
使用Maven Helper解决maven依赖冲突_第3张图片
依赖树:
使用Maven Helper解决maven依赖冲突_第4张图片
我这里想要使用的hive-exec里包含了 “calcite-avatica”,这个依赖里又包含了红色部分的依赖"janino",而"janino"被"flink-table-planner-blink"引用,因此冲突了。
如何解决:
接下来,只需从hive-exec里排除"calcite-avatica"就可以了,点击"exclude"
使用Maven Helper解决maven依赖冲突_第5张图片
查看pom.xml,"calcite-avatica"已经从hive-exec排除掉,重新打包即可。

<exclusion>
    <artifactId>calcite-avaticaartifactId>
    <groupId>org.apache.calcitegroupId>
exclusion>

你可能感兴趣的:(maven,maven,java,hive)