这两天在跑项目的时候,遇到一个奇怪现象。我的项目是都module的,其中module1中引用spring-kafka-1.0.6.RELEASE。module2引用module1,module2中显示module1引用的变成了spring-kafka-1.1.8.RELEASE.
module的引用:
module2的引用module1:
查看module1的依赖情况:可以清晰的看到spring-kafka 是 1.0.6.RELEASE
查看module1的依赖情况:module2显示 module1的依赖的看到spring-kafka 变成 1.1.8.RELEASE。
然后再使用 mvn的名利查看 spring-kafka的整个依赖情况:
Maven命令来查询某个jar的引用情况:进入某module的目录下(pom.xml文件所在的路径)执行命令。
mvn dependency:tree -Dverbose -Dincludes=org.springframework.kafka:spring-kafka
dependency:tree 表示树状显示,还可以dependency:list
-Dverbose 表示可以显示所有的引用,包括因为多次引用重复而忽略的。
-Dincludes 可以制定查询条件
Maven Projects下的Dependencies输出和以下命令是一致
mvn dependency:tree -Dverbose
可以通过下面的命令查询某个Module直接和间接引用的所有jar包
mvn dependency:list -Dverbose
mvn dependency:tree -Dverbose -Dincludes=org.springframework.kafka:spring-kafka
org.springframework.kafka:spring-kafka:jar:1.1.8.RELEASE:compile (version managed from 1.0.6.RELEASE) 可以看到真的版本变了。
想了很多的办法也找不到原因。最后没有办法,只能在module2引用module1的时候用<exclusions>排除掉spring-kafka,然后在module2中在引入module2.1.0.6.RELEASE。才得以解决。
求助各位大神,帮忙找一下为什么会变成这样。不胜感激。