springboot之依赖版本管理

       我们在使用springboot项目的时候,在我们的pom文件中,我们引入的依赖通常不需要制定依赖的版本,但是maven却能够给我们下载正常的jar包。

      在普通的spring项目的中我们需要自己去定义依赖的版本,经常会遇到jar包冲突的情况,springboot自动的帮我们管理这些依赖的版本,给我们的开发省去了不必要的麻烦,提高我们的开发效率!

       那么它是怎么做到的呢。

      下面我们以一个简单的例子来说明一下springboot是怎么做到的依赖版本的自动管理。

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.6.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

所有的springboot项目都会依赖这个父pom,在这个父pom我们可以都看到,它又依赖了一个的pom,

<parent>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-dependencies</artifactId>
  <version>2.1.6.RELEASE</version>
  <relativePath>../../spring-boot-dependencies</relativePath>
</parent>
<artifactId>spring-boot-starter-parent</artifactId>

再看一下spring-boot-dependencies这个pom

<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.1.6.RELEASE</version>
<packaging>pom</packaging>
<properties>
  <activemq.version>5.15.9</activemq.version>
  <antlr2.version>2.7.7</antlr2.version>
  <appengine-sdk.version>1.9.75</appengine-sdk.version>
  <artemis.version>2.6.4</artemis.version>
  <aspectj.version>1.9.4</aspectj.version>
                  。。。
</properties>
<dependencyManagement>
  <dependencies>
   <dependency>
    <groupId>org.apache.activemq</groupId>
    <artifactId>activemq-amqp</artifactId>
    <version>${activemq.version}</version>
   </dependency>
           。。。
  <dependencies>
<dependencyManagement>

在这个顶级的pom文件中,<properties>标签中主要是管理了各个依赖的版本号,而<dependencyManagement>里面声明了常用的依赖并在<version>中使用了上面<properties>的属性值,定义依赖的版本。而我们在自己的项目中如果需要使用某个依赖,只需要声明<groupId>和<artifacted>就可以引用到这个pom里面声明的依赖和对应的版本。

如果要引入一个在spring-boot-dependencies没有定义的依赖,那么则需要在自己的pom中定义依赖的版本。

PS:maven的<dependencyManagement>标签里面定义的依赖只起到一个声明的作用,只有在项目中显式的声明依赖,maven才会真正的去给项目下载这个依赖的jar。

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值