首页 > 其他 > 详细

传递依赖的范围确定

时间:2020-07-09 21:53:22      阅读:63      评论:0      收藏:0      [点我收藏+]

传递依赖的确定

问题:如果A依赖B(A→B),B依赖C(B→C),那么A是否一定依赖C(A→C)? 如果A依赖C,A依赖C的范围是什么?是compile还是test还是provided还是runtime?下表是这个问题的答案:

 

技术分享图片

 

 

表1

 

根据上表,有:当A→B的范围是compile, B→C的范围是test,那么A不依赖于C。

这样理解:假设C就是 junit,即要使用 junit对B的功能进行单元测试(B→C),A要使用B提供的功能(A→B),但是A不一定要使用junit进行单元测试。

在IDEA中验证

  1. 创建模块m_parent和他的两个子模块m_child01, m_child02,m_child01依赖junit,servlet,spring-context,m_child02依赖m_child01
    技术分享图片 技术分享图片 技术分享图片 技术分享图片

  2. 查看依赖:通过Maven Projects窗口的Show Dependencies查看m_child01和m_child02的依赖
    技术分享图片

    • m_child01的依赖
      技术分享图片
    • m_child02的依赖
      技术分享图片
  3. 可以看到:

    • m_child01依赖junit,范围是test,m_child02依赖m_child01,范围是compile,得到m_child02不依赖junit,符合表1中第2行第5列的情况。
    • m_child01依赖servlet,范围是provided,m_child02依赖m_child01,范围是compile,得到m_child02不依赖servlet,符合表1中第2行第3列的情况。
    • m_child01依赖spring-context,范围是compile,m_child02依赖m_child01,范围是compile,得到m_child02依赖spring-context,且范围是compile,符合表1中第2行第2列的情况。

传递依赖的范围确定

原文:https://www.cnblogs.com/wumingoo1/p/13276270.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!