No1:包版本冲突
类似这样:
Dependency convergence error for org.codehaus.jackson:jackson-jaxrs: 1.9 . 13 paths to dependency are:
+-com.qunar.flight:business_statistic: 1.0 -SNAPSHOT
+-org.apache.hive:hive-jdbc: 1.2 . 1
+-org.apache.hive:hive-shims: 1.2 . 1
+-org.apache.hive.shims:hive-shims- 0.23 : 1.2 . 1
+-org.apache.hadoop:hadoop-yarn-server-resourcemanager: 2.6 . 0
+-org.apache.hadoop:hadoop-yarn-common: 2.7 . 1
+-org.codehaus.jackson:jackson-jaxrs: 1.9 . 13
and
+-com.qunar.flight:business_statistic: 1.0 -SNAPSHOT
+-org.apache.hadoop:hadoop-common: 2.5 . 1
+-com.sun.jersey:jersey-json: 1.9
+-org.codehaus.jackson:jackson-jaxrs: 1.8 . 3
]
|
这种情况是一种jar包被引入了不同的版本,产生冲突。比较好解决,只要用依赖管理<dependencyManagement>指定该jar包版本即可,一般用更新的版本
No2:类冲突
类似这样:
[ERROR] [Qunar Enforcer Rules] find DuplicateClasses
Found in:
org.slf4j:jcl-over-slf4j:jar: 1.7 . 22 :runtime
commons-logging:commons-logging:jar: 1.1 . 1 :compile
Duplicate classes:
org/apache/commons/logging/impl/SimpleLog$ 1 . class
org/apache/commons/logging/Log. class
org/apache/commons/logging/impl/SimpleLog. class
org/apache/commons/logging/LogConfigurationException. class
org/apache/commons/logging/impl/NoOpLog. class
org/apache/commons/logging/LogFactory. class
|
这种情况是因为相同类被不同jar包引用,用依赖管理是无法解决问题的,只能排除掉其中一个。
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
这种冲突一般产生于log4j、slf4j、logback或者common包中,排除的时候要看自己的工程中用到的是哪一个包,将没有用到的那个排除掉
可使用mvn dependency:tree 或者IDEA的diagrams查看该类的包是由什么包引入的。