IDEA导⼊maven项⽬依赖包出现omittedforconflictwith2.11.7原因分析:
出现版本冲突的原因是因为由于Maven具有依赖传递性,所以当你引⼊⼀个依赖类的同时,其⾝后的依赖类也⼀起如过江之鲫纷⾄沓来了。
举个例⼦:
  A依赖于B及C,⽽B⼜依赖于X、Y,⽽C依赖于X、M,则A除引B及C的依赖包下,还会引⼊X,Y,M的依赖包(⼀般情况下
了,Maven可通过<scope>等若⼲种⽅式控制传递依赖)。
  这⾥有⼀个需要特别注意的,即B和C同时依赖于X,假设B依赖于X的1.0版本,⽽C依赖于X的2.0版本,A究竟依赖于X的1.0还是2.0版本呢?这就看Classloader的加载顺序了,假设Classloader先加载X_1.0,⽽它就不会再加载X_2.0了,如果A恰恰希望使⽤X_2.0呢,⾎案就这样不期⽽遇了。就会出现了“omitted for conflict with…”依赖版本冲突的问题。
————————————————
解决⽅法:
解决依赖版本冲突的⽅法其实很简单,将不想要或低版本的传递依赖去除掉即可。
⽐如我这个项⽬的maven依赖中错误如图中显⽰的已经很明确了,同时存在两个不同版本的依赖类“org.scala-lang:scala-
library:2.11.4”与“org.scala-lang:scala-library:2.11.7”,由依赖关系可以看出,⼆者都是由依赖“org.apache.kafka_2.11:0.9.0.1”引⼊的,那么我们l⽂件中到这个依赖,加⼊如下配置项代码,将低版本的传递依赖包去除掉就ok了。————————————————
<dependency>
<groupId&dehaus.xfire</groupId>
<artifactId>xfire-all</artifactId>
<version>1.2.6</version>
<!-- 去除版本不⼀致的传递依赖包 -->
<exclusions>
<exclusion>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
kafka最新版本<version>1.0.2</version>
</exclusion>
</exclusions>
</dependency>
————————————————
去除掉后刷新maven即可。。。。。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。