栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Maven - 08 测试依赖的传递性

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Maven - 08 测试依赖的传递性

文章目录
    • 1、依赖的传递性
      • 1. 概念
      • 2. 传递的原则
    • 2. 使用 compile 范围依赖 spring-core
    • 3. 验证 test 和 provided 范围不能传递

1、依赖的传递性 1. 概念

A 依赖 B,B 依赖 C,那么在 A 没有配置对 C 的依赖的情况下,A 里面能不能直接使用 C?

2. 传递的原则

在 A 依赖 B,B 依赖 C 的前提下,C 是否能够传递到 A,取决于 B 依赖 C 时使用的依赖范围。

  • B 依赖 C 时使用 compile 范围:可以传递
  • B 依赖 C 时使用 test 或 provided 范围:不能传递,所以需要这样的 jar 包时,就必须在需要的地方明确配置依赖才可以。
2. 使用 compile 范围依赖 spring-core

测试方式:让 pro01-maven-java 工程依赖 spring-core



  
  
    org.springframework
    spring-core
    4.0.0.RELEASE
  

  
    junit
    junit
    4.12
    test
  

  
    javax.servlet
    javax.servlet-api
    3.1.0
    provided
  

使用 mvn dependency:tree 命令查看效果:

可以看到spring-core依赖commons-logging,junit依赖hamcrest-core,查看本项目所有依赖的jar包:

将pro01-maven-java重新安装,maven的本地仓库中就有了pro01-maven-java的最新jar包:

mvn clean install

由于pro02-maven-web项目的pom文件中导入了pro01-maven-java项目的jar包依赖:

  
    
      junit
      junit
      4.12
      test
    

    
      javax.servlet
      javax.servlet-api
      3.1.0
      provided
    

    
      com.atguigu.maven
      pro01-maven-java
      1.0-SNAPSHOT
      compile
    
  

所以在pro02-maven-web中也可以看到spring-core的依赖,执行mvn dependency:list命令:

3. 验证 test 和 provided 范围不能传递

pro01-maven-java 依赖了 junit,但是在 pro02-maven-web 工程中查看依赖树的时候并没有看到 junit。所以 test 范围不能传递。

在 pro01-maven-java 依赖 servlet-api ,但是在 pro02-maven-web 工程中查看依赖树的时候并没有看到 servlet,所以 provided 范围不能传递。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/831819.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号