一、问题

在上一篇《SpringBoot项目启动不走内嵌容器》中发现,provided会影响子依赖。

标记为scope:provided的jar在编译和运行时有作用,表明了运行时dependency 由JDK或者容器提供

那么问题来了:有个项目,依赖了jar包A,然后A又依赖B,B又依赖C,C又依赖D,现在给A加了scope:provided,那么运行时的B\C\D也是由JDK或者容器提供吗?

二、实验分析

新建个测试项目

spring-boot-starter-web做实验

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
......
</dependencies>

我们点进去看spring-boot-starter-web的依赖关系,如下图

我们可以发现,spring-boot-starter-web依赖于spring-boot-starterspring-boot-starter又依赖于spring-bootspring-boot又依赖于tomcat-embed-core

2.1 实验一:不加provided启动

我们现在启动项目,项目正常,走的是springboot内嵌的tomcat

2.2 实验二:加上provided启动

我们现在加上scope:provided,

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<scope>provided</scope>
</dependency>
......
</dependencies>

再启动项目,发现走的还是springboot内嵌的tomcat

2.3 实验三:给子依赖加上provided启动

我们现在去掉org.springframework.boot的provided,转而给他的子依赖spring-boot-starter加上provided试试

    <dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<scope>provided</scope>
</dependency> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
......
</dependencies>

启动起来,发现没走springboot的内嵌容器,而是走的JDK配置tomcat容器

三、结论

maven的scope:provided会影响它的两级子依赖。

我们现在回答章节一的问题

问题:有个项目,依赖了jar包A,然后A又依赖B,B又依赖C,C又依赖D,现在给A加了scope:provided,那么运行时的B\C\D也是由JDK或者容器提供吗?

答案:B\C由容器提供,D不是。

scope:provided影响子依赖的更多相关文章

  1. 关于maven依赖中的<scope>provided</scope>使用

    今天开发web的时候,需要用到servlet-api,于是在pom.xml中添加依赖 <dependency> <groupId>javax.servlet</group ...

  2. maven scope 'provided' 和 ‘compile’的区别

    解释 其实这个问题很简单. 对于scope=compile的情况(默认scope),也就是说这个项目在编译,测试,运行阶段都需要这个artifact(模块)对应的jar包在classpath中. 而对 ...

  3. maven <scope>provided</scope>

    今天开发web的时候,需要用到servlet-api,于是在pom.xml中添加依赖 <dependency> <groupId>javax.servlet</group ...

  4. maven scope provided和runtime的例子

    maven常用的scope有compile,provided,runtime,test. complie是默认值,表示在build,test,runtime阶段的classpath下都有依赖关系.te ...

  5. CSS 设置背景透明度,不影响子元素

    由于 opacity 属性能被子元素继承,使用它设置父元素背景透明度时也会影响子元素. 解决方法: 1> 使用 RGBA Example .classname { /* RGBa, 透明度0.6 ...

  6. qt 给父窗体设置样式不影响子控件样式以及子控件设置透明

    1.父窗体样式不生效? this->setAttribute(Qt::WA_StyledBackground); 2.父窗样式体影响子控件? this->setStyleSheet(&qu ...

  7. <style scoped >中使用深度选择器影响子组件

    摘自:https://blog.csdn.net/zhouzuoluo/article/details/95593143 <style scoped >中使用深度选择器影响子组件 在< ...

  8. volatile 函数影响子查询提升

    我们知道 volatile 函数会影响SQL的执行性能,比如:volatile 类型函数无法建函数索引.volatile 函数针对每条记录都要执行一次.本篇的例子主要讲述 volatile 类型的函数 ...

  9. 手动通过Lucene判断该pom文件中jar是否存在,子依赖没判断

    package lucne.test; import java.io.File; import java.io.FileNotFoundException; import java.io.IOExce ...

随机推荐

  1. C# 监测每个方法的执行次数和占用时间(测试4)

    今天也要做这个功能,就百度一下,结果搜索到了自己的文章.一开始还没注意,当看到里面的一个注释的方法时,一开始还以为自己复制错了代码,结果仔细一看网页的文章,我去,原来是自己写的,写的确实不咋地. 把自 ...

  2. shell脚本编程基础之for循环

    循环结构 循环需要有进入条件和退出条件,如果没有退出条件,则就会一直循环下去 for 变量 in 列表:do 循环体 done 生成列表及示例 {1..100}:生成1到100的整数列表 `comma ...

  3. App数据指标

    App数据指标 1 App数据指标 2 参考资料 超详细的APP数据指标体系分析

  4. SpringBoot:关于默认连接池Hikari的源码剖析

    1.起因 因为这两天在给公司的一个项目升级SpringBoot版本,遇到了一些坑,升级项目版本:SpringBoot1.5.x到SpringBoot2.0.x 今天早上双库操作遇到一个问题:jdbcU ...

  5. mysql增删改查sql语句

    未经允许,禁止转载!!!未经允许,禁止转载!!! 创建表   create table 表名删除表    drop table 表名修改表名   rename table 旧表名 to 新表名字创建数 ...

  6. 日期正则表达式yyyyMMdd

    日期校验yyyyMMdd, 包括闰月等校验. package com.xgcd; import java.util.regex.Matcher; import java.util.regex.Patt ...

  7. pip install --upgrade urllib3==1.25.2

    pip install --upgrade urllib3==1.25.2 pip 安装,更新模块   moudle_name:是对应的模块名:请自行更换为自己需要更新的模块名 查看所有可更新的模块: ...

  8. jq select change下拉框选项变化判断选中值,添加(attr)或移除(removeAttr)一个或多个属性

    select change下拉框选项变化判断选中值,添加(attr)或移除(removeAttr)一个或多个属性 $("#IsRecommend").change(function ...

  9. thinkphp---404错误页面

    在用thinkphp开发项目的时候,会额外的处理404错误页面,但是我们很多的开发人员,在处理404错误页面的时候,处理方式都是不对的. 普通处理404的操作是通过 $this->error() ...

  10. 爬虫中Requests模块

    Requests: 让 HTTP 服务人类 虽然Python的标准库中 urllib2 模块已经包含了平常我们使用的大多数功能,但是它的 API 使用起来让人感觉不太好,而 Requests 自称 “ ...