meaven的冲突问题

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>

未完待续

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容