maven深入学习笔记_002maven依赖

一、标签

dependencyManagement:只是声明有那些依赖,并不实际引入。子模块引入对应的包时可以不写version版本。
dependencies:依赖管理
    dependencie:
        groupId:groupId
        artifactId:artifactId
        version:version
        type:项目类型
        scope:作用域~
            test:仅在编译和运行测试代码时才有效。
            compile:默认的,编译、测试、运行时有效。
            provided:编译和测试有效,运行无效。例如servlet-api,环境自己提供了
            runtime:运行时有效,比如数据库驱动jar
            system:需要配合systemPath一起使用
        systemPath:系统jar包的位置,例如  ${project.basedir}/src/main/resources/lib/szcaservice.jar。其中${project.basedir}代表了系统运行时的根路径。
        exclusions:需要排除的jar包
            exclusion:
                groupId:需要排除的groupId
                artifactId:需要排除的artifactId
        optional:可选依赖。假设a依赖b,b依赖c。b中依赖c的dependencie的optional为true时,a就不会依赖c,必需a也声明依赖c才会真正的依赖c。如果optional为false,就是默认的,a也会依赖c。

二、依赖调解机制

    比如A依赖B依赖C依赖D(V1.0),A依赖F依赖D(V2.0)。这里A依赖了两个版本的D,那么maven会选择里A最近的那一条线路,选择2.0版本。如果依赖链路一样长,就拿个先声明用哪个

三、如何解决依赖冲突

    有时候maven通过依赖解决机制选择错了jar包,那就很尴尬啦,这个时候需要自己调节。如果使用idea,推荐安装maven helper插件。
image.png
    如果有冲突得到话会显示成红色,并且可以一键排除jar包

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值