替换spring-boot中的组件版本

spring-boot是一个用于简化开发的框架,引入spring-boot后会自动包含spring框架,通过引入xxx-start来完成指定组件的功能。比如:

  • spring-boot-starter-web(嵌入 Tomcat 和 web 开发需要的 servlet 和 jsp 支持)
  • spring-boot-starter-data-jpa(数据库支持)
  • spring-boot-starter-data-Redis(Redis 支持)
  • spring-boot-starter-data-solr(solr 搜索应用框架支持)
  • mybatis-spring-boot-starter(第三方 mybatis 集成 starter)

在使用spring-boot搭建应用时,引入了spring-boot-starter-parent后,为什么在pom.xml中加入其他依赖时通常不需要指定version?

此外,在spring-boot应用中,有时要修复某个组件的漏洞,需要指定组件的具体版本,这个该如何做呢?

以上两个疑问,底层逻辑是一样的。首先看下,spring-boot是在哪里指定了依赖的version?

在pom.xml中,我们将焦点放到了spring-boot-starter-parent本身上,

进去以后内容如下:

 

可以看到主要是build相关的信息,在最上面发现还有一个parent(spring-boot-dependencies),继续cmd+左键点击进去:

在这里有各种以来的版本定义。继续往下搜,在dependencyManagement节点下,引入了各种依赖:

在maven中dependencyManagement往往用在父项目中,管理统一(公共)的依赖,这样在子项目中可以使用dependency有选择性的继承。所以在我们项目的pom中可以不用指定version直接继承父pom.xml中的依赖了。

到这里其实已经解答了我们上面的两个疑问。如果要指定版本,我们只需要在项目的pom.xml中通过property配置对应的版本即可。例如:

<properties>
        <commons-codec.version>1.11</commons-codec.version>
</properties>

 注:更改依赖的版本,可能会遇到兼容性问题。

 

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-10 13:12:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-10 13:12:04       101 阅读
  3. 在Django里面运行非项目文件

    2024-05-10 13:12:04       82 阅读
  4. Python语言-面向对象

    2024-05-10 13:12:04       91 阅读

热门阅读

  1. 周口电力乙级资质认证与企业长远发展规划

    2024-05-10 13:12:04       29 阅读
  2. [力扣题解] 216. 组合总和 III

    2024-05-10 13:12:04       37 阅读