美文网首页
Maven依赖和冲突

Maven依赖和冲突

作者: OPice | 来源:发表于2019-10-30 20:42 被阅读0次

maven的核心就是依赖管理,在模块过多,之间的依赖关系也很复杂,maven提高了一个高效的管理方法。

        <dependency>
            <groupId>工程组唯一标识</groupId>  
            <artifactId>工程唯一标识</artifactId>
            <version>版本</version>
            <scope>依赖范围</scope>
            <optional>依赖可选</optional>
            <exclusions>
                <exclusion>
                    <!-- 排除jar -->
                    <groupId>com.alibaba</groupId>
                    <artifactId>jconsole</artifactId>
                    <!--注意这里没有写版本-->
                </exclusion>
            </exclusions>
        </dependency>

当A 依赖 B ,B 依赖C。 其中C是通过依赖传递给A,A中是有C的。
其中A不想依赖C 可以使用<exclusion>(不指定版本)或者<optional>(默认值false)

  • scope取值: compile、provided、test、runtime、system、import
取值 范围 描述
compile 默认值,编译时、测试、运行 当前项目的类路径下有效
provided 编译、测试 由运行时JDK或者容器(Idea)提供
test 测试,运行 只在测试编译执行阶段
runtime 运行时 在编译时不是必须的,执行时必须。类似JDBC
system 编译测试 从本地系统指定路径获取systemPath
import 导入阶段 只用在dependencyManagement中,和<type>pom</type>配合使用
  • 依赖冲突

依赖冲突产生的原因:就像A引入了B和C,但是在B和C中都依赖了D,B依赖的D的1.0版本,C依赖了D的1.1版本。这是两个版本的D就有可能出现冲突,为什么是有可能?
因为依赖管理是根据两个版本的深度和谁先声明,来决定选谁。
比如:
A->B->D(1.0)
A->C->E->D(1.1)
这时A就会选择D(1.0); 如果路径相同谁先声明使用谁。

依赖冲突大多场景:NoSuchMethod、NotFoundClass,方法类不一致。
解决方式:mvn denpendency:treee -->tree.tex 在当前目录打印出maven 依赖树生成tree.txt 文件,找出冲突的jar。

如何避免依赖冲突:项目中依赖的jar都有父POM < dependencyManagement>管理,其他模块使用import。

相关文章

  • Maven依赖和冲突

    maven的核心就是依赖管理,在模块过多,之间的依赖关系也很复杂,maven提高了一个高效的管理方法。 当A 依赖...

  • 错误:Error querying database. Cau

    maven的依赖和原来的版本冲突!改掉即可!

  • Maven 依赖冲突

    Maven 依赖冲突 1. 什么是依赖冲突 Maven是个很好用的依赖管理工具,但是再好的东西也不是完美的。Mav...

  • Maven - 依赖冲突

    依赖传递 参见:Maven依赖机制简介 总结:一句话概括:当项目A依赖于B,而B又依赖于C的时候,自然的A会依赖于...

  • 说说maven依赖冲突,依赖调解,依赖传递和依赖范围

    说maven依赖冲突之前需要先说说maven的 依赖传递。 依赖传递 当前项目引入了一个依赖,该依赖的依赖也会被引...

  • SpringCloud 广告系统实战(二) - 脚手架的搭建

    0 联系我 1 Maven 基础 坐标 常用命令 2 Maven 相关特性 传递依赖与排除依赖 依赖冲突 多模块项...

  • Maven解决依赖冲突

    maven依赖冲突以及解决方法 什么是依赖冲突 依赖冲突是指项目依赖的某一个jar包,有多个不同的版本,因而造成类...

  • maven 依赖传递和版本冲突

    大家好,我是IT修真院北京分院第22期的学员童志荣,一枚正直纯洁善良的java程序员。 PPT戳这里 一、背景介绍...

  • POM文件

    解决依赖冲突 引用变量的三种情况(maven命令) 多环境属性过滤 各种依赖(POM文件详解) 解决maven传递...

  • Maven依赖冲突解决

    背景 在部署一个spring-boot项目到远程测试机上的tomcat之后,发现tomcat并没有启动起来,让我折...

网友评论

      本文标题:Maven依赖和冲突

      本文链接:https://www.haomeiwen.com/subject/azwovctx.html