我们在使用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。
热门文章
- 农大立德动物医院怎么样啊知乎(农大立德宠物医院华发分院)
- 北京农业大学动物医院挂号(北京农大动物医院怎么挂号)
- VPN翻墙免费 | 4月11日22.6M/S|免费Clash/Shadowrocket/SSR/V2ray订阅节点分享
- 包含猫领养免费平台的词条
- VPN翻墙免费 | 4月4日18.1M/S|免费SSR/V2ray/Shadowrocket/Clash订阅节点分享
- VPN翻墙免费 | 4月2日22.6M/S|免费Clash/V2ray/SSR/Shadowrocket订阅节点分享
- 给动物打的疫苗是什么意思(给动物打疫苗的官方部门)
- VPN翻墙免费 | 4月9日22.3M/S|免费Shadowrocket/V2ray/SSR/Clash订阅节点分享
- VPN翻墙免费 | 4月29日21.1M/S|免费Shadowrocket/V2ray/SSR/Clash订阅节点分享
- VPN翻墙免费 | 4月23日18.5M/S|免费Shadowrocket/V2ray/Clash/SSR订阅节点分享