热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

为什么SpringBoot项目引入依赖的时候可以不指定依赖的版本号

最近在SpringBoot项目中引入依赖的时候注意到一个问题:引入的依赖不指定版本号,项目正常运行,如下方   这其中涉及到两个方面的知识:一,多级项目中maven子项目继承了父项

最近在Spring Boot 项目中引入依赖的时候注意到一个问题:引入的依赖不指定版本号,项目正常运行,如下方

为什么Spring Boot项目引入依赖的时候可以不指定依赖的版本号

 

 

 这其中涉及到两个方面的知识:

一,多级项目中maven子项目继承了父项目pom.xml中dependencyManagement标签下对应的依赖,dependencyManagement的作用其实相当于一个对所依赖jar包进行版本管理的管理器。

  1、如果dependencies里的dependency自己没有声明version元素,那么maven就会到dependencyManagement里面去找有没有对该jar进行过版本声明,如果有,就继承它,如果没有就会报错,告诉你必须为dependency声明一个version

  2、如果dependencies中的dependency声明了version,那么无论dependencyManagement中有无对该jar的version声明,都以dependency里的version为准

二、maven项目的父pom为spring-boot-starter-parent,而spring-boot-starter-parent的父pom是spring-boot-dependencies,该pom中dependencyManagement标签中声明了许多常见的依赖版本,如果自己的pom中没有声明,那么就默认用spring-boot-dependencies中声明的pom版本

 

所以,在引入依赖的时候,即使你不指定依赖的版本,Spring Boot 也会通过Maven 的继承关系,引入依赖的版本,从而完成版本的统一

 

注:

今天碰到一点点问题,总结就是:如果父pom中直接使用....的方式申明jar,子项目则可以直接使用该jar而不需要申明。


推荐阅读
author-avatar
被爱的小花花_
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有