Maven_scope依赖性

<!-- 表示编译的时候不依赖,而在测试或者运行的时候 自动依赖 -->

<scope>runtime</scope>

  

<!-- 编译依赖,打包 测试 运行都将依赖存储进去,默认为 compile 依赖 依赖会传递 -->

<scope>compile</scope>

  

<!-- 编译和测试过程依赖有效,最后使用命令打成war 包时不会加入 -->

<scope>provided</scope>

  

<!-- 测试范围依赖,打包和编译 都不使用这个依赖 ,其次 test范围的资源 也不支持依赖传递 -->

<scope>test</scope>

  

  

当A项目依赖 log4j 1.2.9 B项目依赖 log4j 1.2.17 时,

若C项目依赖于 A、B两个项目时, 等同于C间接的依赖到 log4j 1.2.9 log4j 1.2.17 两个包,

A、B项目依赖 log4j 的级别相同,都直接连接

此时 C项目的 pom.xml 如果先依赖 A项目,则C依赖的 log4j 版本为 1.2.9

如果先依赖B项目,则C依赖的 log4j 版本为 1.2.17

  

  

当A项目依赖于D项目,D项目依赖于 log4j 1.2.17 B项目依赖 log4j 1.2.9 时,

若C项目依赖于 A、B两个项目时, 等同于C间接的依赖到 log4j 1.2.9 log4j 1.2.17 两个包,

但A、B项目依赖 log4j 的级别不同,A是间接链接到log4j

此时 C项目的 pom.xml 中 C依赖的 log4j 版本为 1.2.9

取 依赖层次短的 log4j

若C项目也直接依赖 log4j 1.2.16, 此时 C项目中maven依赖 log4j 则直接为 1.2.16 依赖层次最短

  

当包产生冲突的时候,可以进行排除依赖操作。

<dependency>

<groupId>${project.groupId}</groupId>

<artifactId>user-log</artifactId>

<version>${project.version}</version>

<!-- 排除依赖 一般包冲突的时候,可以选择这个方法 -->

<exclusions>

<exclusion>

<groupId>commons-logging</groupId>

<artifactId>commons-logging</artifactId>

</exclusion>

</exclusions>

</dependency>

  

  

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值