Maven对于新手来说,最痛苦的一件事莫过于包之间的冲突,由于Maven的依赖传递性,当你引入一个依赖类时,其身后的依赖类也一起如过江之鲫纷至沓来了。
Maven采用“最近获胜策略(nearest wins strategy)”的方式处理依赖冲突,即如果一个项目最终依赖于相同artifact的多个版本,在依赖树中离项目最近的那个版本将被使用。
1,Reimport一下,IDE会强制根据新的pom.xml设置重新分析并加载依赖类包,以得到和pom.xml设置相同的依赖。(这一步非常重要哦,经常项目组pom.xml是相同的,但是就是有些人可以运行,有些人不能运行,俗称人品问题,其实都是IDE的缓存造成的了)
2,找到依赖关系,将不想要的传递依赖剪除掉,防止依赖版本不一致
3,在pom.xml中补上真正的依赖包
<dependency>
<groupId>project-common</groupId>
<artifactId>project-commmon</artifactId>
<version>2.0</version>
</dependency>
最后解决:改变maven安装目录内的settings.xml
添加
<mirror>
<id>ali-center</id>
<name>maven central</name>
<mirrorOf>*</mirrorOf>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
<mirror>
<id>central</id>
<name>maven central</name>
<mirrorOf>*</mirrorOf>
<url>http://repo.maven.apache.org/maven2/</url>
</mirror>
<mirror>
<id>nexus-local</id>
<name>Nexus local</name>
<mirrorOf>*</mirrorOf>
<url>http://130.1.198.201:8081/nexus/content/groups/public/</url>
</mirror>
未完待续