`
天堂飘过
  • 浏览: 19885 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

maven依赖冲突解决

阅读更多
    用maven管理库依赖,有个好处就是连同库的依赖的全部jar文件一起下载,免去手工添加的麻烦,但同时也带来了同一个jar会被下载了不同版本的问题。
    当发生版本冲突时,首先要定位冲突的jar包,其次通过<exclusions>排除冲突的依赖。
一、定位冲突的jar包
    1、编译项目,当项目运行报错时,根据错误信息,寻找报错的依赖。
    2、解压编译好的jar包或者war包,在lib文件夹下,找到相同jar包的不同版本。

如图,找到冲突的jar包asm。
二、找到引入冲突jar包的依赖
接下要找到是哪个<dependecy>引入的不同版本的asm。有两种方式:
    1、使用命令
mvn dependency:tree >tree.txt
,在生成的文件中搜索ams
    2、如果IDE使用的intellij Idea,可以在pom文件中,生成依赖树的可视化视图寻找冲突。






三、解决冲突
在pom的配置里用<exclusion>来排除一些不需要同时下载的依赖jar
<!-- hibernate -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>3.6.7.Final</version>
            <exclusions>
                <exclusion>
                    <groupId>asm</groupId>
                    <artifactId>asm</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>javassist</groupId>
                    <artifactId>javassist</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>3.6.7.Final</version>
            <exclusions>
                <exclusion>
                    <groupId>asm</groupId>
                    <artifactId>asm</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>javassist</groupId>
                    <artifactId>javassist</artifactId>
                </exclusion>
            </exclusions>
        </dependency>


重新编译,冲突解决。

参考资料:
引用
http://blog.csdn.net/rocklee/article/details/51692054

引用
http://www.cnblogs.com/dingyingsi/p/3725340.html





  • 大小: 131.6 KB
  • 大小: 272.3 KB
  • 大小: 158.8 KB
0
0
分享到:
评论

相关推荐

    maven依赖冲突插件 MavenHelper-4.26.0

    maven依赖冲突插件:idea依赖很多的时候 可以使用插件帮我们快速查看冲突的依赖 并快速的解决依赖

    解决Maven依赖冲突

    对于第二类依赖冲突,同名类存在于多个不同的依赖 jar 包当中,这种情况是 Maven 无法解决的,因为 Maven 只会为你针对同一个 Jar 包的不同版本进行仲裁,而这俩是属于不同的 Jar 包,超出了 Maven 的依赖管理范畴。...

    详解maven依赖冲突以及解决方法

    maven依赖冲突及解决方法 maven依赖冲突是指项目依赖的某一个jar包,有多个不同的版本,因而造成类包版本冲突。这种情况下,项目可能会出现无法编译或运行的错误。 依赖冲突的原因: 依赖冲突很经常是类包之间的...

    试试 IDEA 解决 Maven 依赖冲突的高能神器.docx

    总的来说,解决Maven依赖冲突需要理解其工作原理,结合IDEA提供的工具,如Maven Helper插件和依赖结构图,可以有效地定位和排除冲突,保持项目的稳定性和可维护性。在实际开发中,避免引入不必要的依赖和定期清理...

    maven依赖小例子

    这大大简化了项目的构建过程,但同时也可能导致依赖冲突,需要通过排除机制或调整依赖版本来解决。 在`&lt;dependency&gt;`标签内,还可以添加`&lt;exclusions&gt;`子标签来排除特定的依赖,避免冲突。例如: ```xml ...

    idea插件一键解决maven依赖冲突

    本插件参考58开源插件MavenManager,采用dependencyManagement方式,一键解决Java开发过程中使用maven作为依赖管理时的jar包依赖冲突问题,相比MavenHelper更加省时省力,jar包版本采用最新版本号原则

    ​实现maven项目中多版本依赖兼容使用解决方案

    总结来说,解决Maven依赖冲突需要深入理解Maven的依赖管理和类加载机制。在本案例中,通过修改冲突依赖的类路径,可以实现多版本依赖的共存,但这种方式并不适用于所有场景,因此在实际应用中应谨慎考虑。在可能的...

    Maven 依赖详细理解.pdf

    依赖调解是Maven解决依赖冲突的机制。当一个项目中引入了两个具有相同坐标但版本不同的依赖项时,Maven会根据一定的规则选择其中一个版本。Maven的依赖调解规则包括:短距离优先原则和声明优先原则。短距离优先原则...

    dubbo项目maven依赖

    1. **依赖版本不匹配**:Dubbo项目依赖于许多其他库,如果本地Maven仓库中的依赖版本与项目中声明的不一致,可能导致编译失败。解决方法是更新Maven的settings.xml文件,或者在pom.xml中指定特定版本。 2. **网络...

    maven 中引入依赖的包

    这在排查依赖冲突或理解项目依赖关系时非常有用。 除了Maven的默认仓库外,还可以通过`&lt;repository&gt;`标签添加自定义的远程仓库地址,这对于处理公司内部私有库或者第三方库的非中央仓库发布的情况非常关键。 在...

    maven依赖包(用于博客项目)

    6. **版本控制**: Maven遵循严格的版本管理规则,依赖项版本冲突时,Maven会根据其依赖解析策略解决。这确保了项目的一致性和可预测性。 7. **多模块项目**: 如果博客项目包含多个子模块,如前端、后端、公共服务等...

    cleanLastUpdated maven依赖冲突清理.zip

    导入maven仓库的时候总是提示jar文件导入不成功的错误,后经过分析,发现不成功的文件夹里面存在lastUpdate后缀名的文件。 用途:删除lastupdated脚本文件 注:路径需要自己用文本编辑器打开后进行修改

    Maven的依赖验证项目

    【Maven的依赖验证项目】是一个关于Maven项目管理和依赖管理的实践案例,它与CSDN博主songdeitao的一篇文章《Maven依赖管理详解》相关联。在这个项目中,我们将深入理解Maven如何处理项目的依赖关系,以及如何有效地...

    Maven类包冲突终极解决小技若干

    ### Maven 类包冲突终极解决技巧详解 在软件开发过程中,Maven 作为一款流行的构建工具,在项目管理和构建自动化方面发挥着重要作用。然而,对于新手而言,Maven 的复杂性和广泛的功能可能会让人感到困惑,尤其是在...

    maven依赖的压缩包

    5. **解决依赖问题**:如果遇到依赖冲突,Maven遵循“最接近原则”(nearest wins)进行解决,但也可以通过调整POM中的dependencyManagement来全局控制依赖版本。 6. **使用Maven仓库**:除了中央仓库外,还可以...

    MavenHelper插件 帮你检查maven的各种冲突

    这款插件专为IntelliJ IDEA设计,旨在帮助开发者轻松解决Maven依赖冲突问题,提高开发效率。 **MavenHelper插件介绍** MavenHelper是一款强大的IDEA插件,它的主要功能是分析和可视化Maven项目的依赖树,帮助开发者...

    Maven中的依赖

    5. **仓库**:Maven依赖的存储库,包括本地仓库(默认在用户目录下)和远程仓库(如中央仓库mvnrepository.com)。当本地仓库没有所需依赖时,Maven会尝试从远程仓库下载。 6. **排除依赖(exclude)**:有时候我们...

    idea中解决maven包冲突的问题(maven helper)

    "idea中解决maven包冲突的问题(maven helper)" Idea 中解决 Maven 包冲突的问题是日常开发中经常会遇到的一个问题。在 Idea 中,解决 Maven 包冲突的问题可以使用 Maven Helper 插件,该插件可以帮助我们快速地...

Global site tag (gtag.js) - Google Analytics