国家建设规范网站,河北廊坊百度建站,甜品网站建设方案,简述企业网站如何推广Maven#xff08;五#xff09;#xff1a;Maven的使用——依赖的测试 前言一、实验六#xff1a;测试依赖的范围1、依赖范围1.1 compile 和 test 对比1.2 compile 和 provided 对比1.3 结论 二、实验七#xff1a;测试依赖的传递性1、依赖的传递性1.1 概念1.2 传递的原则… Maven五Maven的使用——依赖的测试 前言一、实验六测试依赖的范围1、依赖范围1.1 compile 和 test 对比1.2 compile 和 provided 对比1.3 结论 二、实验七测试依赖的传递性1、依赖的传递性1.1 概念1.2 传递的原则 三、实验八测试依赖的排除1、概念2、配置方式3、测试 前言
本博主将用CSDN记录软件开发求学之路上亲身所得与所学的心得与知识有兴趣的小伙伴可以关注博主也许一个人独行可以走的很快但是一群人结伴而行才能走的更远 一、实验六测试依赖的范围 1、依赖范围 标签的位置dependencies/dependency/scope 标签的可选值compile/test/provided/system/runtime/import 1.1 compile 和 test 对比 main目录空间test目录空间开发过程时间部署到服务器时间compile有效有效有效有效test无效有效有效无效1.2 compile 和 provided 对比 main目录空间test目录空间开发过程时间部署到服务器时间compile有效有效有效有效provided有效有效有效无效1.3 结论 compile通常使用的第三方框架的 jar 包这样在项目实际运行时真正要用到的 jar 包都是以 compile 范围进行依赖的。比如SSM 框架所需jar包。 test测试过程中使用的 jar 包以 test 范围依赖进来。比如 junit。 provided在开发过程中需要用到的“服务器上的 jar 包”通常以 provided 范围依赖进来。比如servlet-api、jsp-api。而这个范围的 jar 包之所以不参与部署、不放进 war 包就是避免和服务器上已有的同类 jar包产生冲突同时减轻服务器的负担。说白了就是“服务器上已经有了你就别带啦” 二、实验七测试依赖的传递性 1、依赖的传递性 1.1 概念 A 依赖 BB 依赖 C那么在 A 没有配置对 C 的依赖的情况下A 里面能不能直接使用 C 1.2 传递的原则 在 A 依赖 BB 依赖 C 的前提下C 是否能够传递到 A取决于 B 依赖 C 时使用的依赖范围。 ⭕ B 依赖 C 时使用 compile 范围可以传递 ⭕ B 依赖 C 时使用 test 或 provided 范围不能传递所以需要这样的jar 包时就必须在需要的地方明确配置依赖才可以。 三、实验八测试依赖的排除 1、概念 当 A 依赖 BB 依赖 C 而且 C 可以传递到 A 的时候A 不想要 C需要在 A 里面把 C 排除掉。而往往这种情况都是为了避免 jar 包之间的冲突。 所以配置依赖的排除其实就是阻止某些 jar 包的传递。因为这样的 jar 包传递过来会和其他 jar 包冲突。 2、配置方式 dependencygroupIdcom.atguigu.maven/groupIdartifactIdpro01-maven-java/artifactIdversion1.0-SNAPSHOT/versionscopecompile/scope!-- 使用excludes标签配置依赖的排除 --exclusions!-- 在exclude标签中配置一个具体的排除 --exclusion!-- 指定要排除的依赖的坐标不需要写version --groupIdcommons-logging/groupIdartifactIdcommons-logging/artifactId/exclusion/exclusions
/dependency3、测试 测试的方式在 pro02-maven-web 工程中配置对 commons-logging 的排除 dependencygroupIdcom.atguigu.maven/groupIdartifactIdpro01-maven-java/artifactIdversion1.0-SNAPSHOT/versionscopecompile/scope!-- 使用excludes标签配置依赖的排除 --exclusions!-- 在exclude标签中配置一个具体的排除 --exclusion!-- 指定要排除的依赖的坐标不需要写version --groupIdcommons-logging/groupIdartifactIdcommons-logging/artifactId/exclusion/exclusions
/dependency运行 mvn dependency:tree 命令查看效果 [INFO] com.atguigu.maven:pro02-maven-web:war:1.0-SNAPSHOT
[INFO] - junit:junit:jar:4.12:test
[INFO] | \- org.hamcrest:hamcrest-core:jar:1.3:test
[INFO] - javax.servlet:javax.servlet-api:jar:3.1.0:provided
[INFO] \- com.atguigu.maven:pro01-maven-java:jar:1.0-SNAPSHOT:compile
[INFO] \- org.springframework:spring-core:jar:4.0.0.RELEASE:compile发现在 spring-core 下面就没有 commons-logging 了。