maven 传递依赖-冲突解决

男娘i 2021-06-24 13:59 758阅读 0赞

依赖是会被传递

  1. A-->C B-->A ==>B-->C(这种依赖是基于compile这个范围进行传递)
  2. dependency配置中如果没有写scope默认就是compile范围,依赖的传递主要是针对compile作用域
  3. 依赖的范围:
  4. test范围指的是测试范围有效,在编译和打包时都不会使用这个依赖
  5. compile范围指的是编译范围有效,在编译和打包时都会将依赖存储进去
  6. provided范围指的是在编译和测试的过程有效,最后生成war包时不会加入,诸如:servlet-api,因为servlet-api,tomcatweb服务器已经存在了,如果再打包会冲突
  7. runtime在运行的时候依赖,在编译的时候不依赖
  8. 依赖冲突
  9. 1、如果a依赖于b1.0版本,c依赖于b1.1版本,d依赖于ac,这时在dpom中哪一个依赖先写就使用先写依赖的版本
  10. 2、如果a依赖于b1.0版本,c依赖于b1.1版本,d依赖于acf依赖于dc,依赖的路径的长短不一致就选择最小的
  11. 3、如果希望精确的控制依赖包,可以使用依赖的排除功能——>exclusions来排除

发表评论

表情:
评论列表 (有 0 条评论,758人围观)

还没有评论,来说两句吧...

相关阅读

    相关 如何解决Maven依赖冲突

    Maven依赖冲突是一个很常见的问题,它通常发生在项目中有多个依赖包含相同库的不同版本时。我这边解决Maven依赖冲突的几种常用方法如下: 1、显示依赖树 首先,使用以

    相关 Maven依赖冲突

    文章目录 * 路径最短者优先 路径相同先声明优先 统一管理依赖的版本 **依赖的原则**主要是为了解决模块之间jar包冲突问...