总结:Springboot的pom配置
一、dependencymanagement
1、在Maven中dependencyManagement的作用其实相当于一个对所依赖jar包进行版本管理的管理器。
2、pom.xml文件中,jar的版本判断的两种途径:
- 如果dependencies里的dependency自己没有声明version元素,那么maven就会到dependencyManagement里面去找有没有对该artifactId和groupId进行过版本声明,如果有,就继承它,如果没有就会报错,告诉你必须为dependency声明一个version。
- 如果dependencies中的dependency声明了version,那么无论dependencyManagement中有无对该jar的version声明,都以dependency里的version为准。
3、dependencies和dependencyManagement的区别
3.1 dependencies即使在子项目中不写该依赖项,那么子项目仍然会从父项目中继承该依赖项(全部继承)
3.2 dependencyManagement里只是声明依赖,并不实现引入,因此子项目需要显示的声明需要用的依赖。如果不在子项目中声明依赖,是不会从父项目中继承下来的;只有在子项目中写了该依赖项,并且没有指定具体版本,才会从父项目中继承该项,并且version和scope都读取自父pom;另外如果子项目中指定了版本号,那么会使用子项目中指定的jar版本。
二、parent标签
parent用于引用父工程
1、统一管理jar包的版本,其依赖需要在子工程中定义才有效(比如此例)
2、统一的依赖管理(父工程的,子工程不必重新引入,功能和dependencyManagement类似)
3、控制插件的版本
parent标签一般会和dependencyManagement结合使用,即:
- 不是全部需要的依赖写在dependencyManagement中,让子项目免除写版本号
- 共的依赖写在parent的<dependency>中,子项目就不用导入依赖了,因为parent的<dependency>是默认被子项目下载的
三、dependencyManagement与dependencies的区别
dependencyManagement:并不实际引入,要和dependencies结合使用
dependencies:可单独使用,也可结合dependencyManagement使用,当结合dependencyManagement使用的时候,可不写版本号,dependencies在子项目中会自动引入这些依赖
四、dependencyManagement与parent标签的区别
1、dependencyManagement标签
作用就是版本依赖的管理,免写版本号,如果dependencies里的dependency自己没有声明version元素,那么maven就会到dependencyManagement里面去找有没有对该artifactId和groupId进行过版本声明。
在子项目中不会自动引入这些依赖,子项目如果想使用,还是需要单独引入,但是可以不写版本号(这是dependencyManagement的主要作用),但是如果子项目定义一个新的版本,那么就会覆盖parent的版本。
总结:dependencyManagement作用只有一个,管理依赖的版本号,作用是可以统一依赖
2、parent标签
1、抽象,被子类继承
- 对于公共的包,在父模块中直接引入,子模块的pom就简单了
2、parent中也可以使用dependencyManagement来管理依赖,那么子模块继承了parent模块之后,就实现不用写部分常用包的版本号了
- 但是:我们还可以在子模块定义dependencyManagement标签,因为有些在parent中没有,比如Springboot项目的parent中并没有SpringCloud的版本,所以我们需要定义下
3、控制插件的版本
在SpringCloud项目中,我们一般使用两个管理版本间的依赖:
<!-- 管理springboot相关的依赖包版本 -->
<!-- 有了这个配置,我们的pom中引入springboot相关依赖包时就不用写版本号了 -->
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.12.RELEASE</version><relativePath/>
</parent><!-- 管理SpringCloud相关的依赖包版本 -->
<!-- 有了这个配置,我们的pom中引入springcloud相关依赖包时就不用写版本号了 -->
<dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>Greenwich.RELEASE</version><type>pom</type><scope>import</scope></dependency></dependencies>
</dependencyManagement>
参考:
Maven中dependencies和dependencyManagement的区别
SpringCloud版本规则和原理和在具体项目中的使用 - 杭州胡欣 - 博客园
总结:Springboot的pom配置相关推荐
- springboot+druid+mybatis-Plus 配置详解
网上找了很多关于springboot+druid+mybatis-Plus的配置,遇见的很多问题 也没找到好的解决方案.折腾了好几天终于自己配置通过了. springboot的pom文件 1 < ...
- SpringBoot远程访问redis配置,config文件,防火墙,阿里云安全组等
我这里是连接的阿里云服务器上的redis 1.阿里云服务器的安全组打开6379端口 2. 修改redis.config配置 注释掉 # bind 127.0.0.1 将 protected-mode ...
- springboot多环境配置_编辑 SpringBoot|第五章:多环境配置
多环境配置 在开发应用时,常用部署的应用是多个的,比如:开发.测试.联调.生产等不同的应用环境,这些应用环境都对应不同的配置项,比如swagger一般上在生产时是关闭的:不同环境数据库地址.端口号等都 ...
- SpringBoot2.x系列教程11--小花样之SpringBoot其他常用配置
SpringBoot系列教程11--小花样之SpringBoot其他常用配置 作者:一一哥 一. 修改端口号和访问路径 在Spring Boot 项目中会使用一个全局的配置文件application. ...
- Springboot多数据源配置详解
Springboot多数据源配置详解 概念 配置 多数据源使用 概念 一般来说,我们正常的业务只涉及一个数据源,在特定的业务场景中需要使用多个数据源的情况,就需要配置多个数据源来满足特定的业务需求.本 ...
- SpringBoot和SpringCloud配置
SpringBoot和SpringCloud配置 一.springBoot配置 1.1.yml 1.2.pom 1.3.RestTemplate 二.注册中心 Spring Cloud Eureka ...
- springboot快速详细配置搭建
前言 本文章只局限于springBoot的快速配置搭建,原理部分请阅读本人的另一篇原理剖析的文章,同时本文章会有一部分配置未写入: 1 本文章只介绍本人认为代码量最少的配置 2 有部分配置比较多,以文 ...
- 一文搞定:SpringBoot 集成 Apollo 配置中心
公众号后台回复"面试",获取精品学习资料 扫描下方海报了解专栏详情 本文来源: http://www.mydlq.club/article/42/ <Java工程师面试突击( ...
- SpringBoot的基本配置
** SpringBoot的基本配置: ** 主程序入口:XxxApplication,使用@SpringBootApplication注解修饰 类加载路径Resource: **配置文件:**以ap ...
最新文章
- Java高级特性增强-多线程
- mysql注入漏洞语句_mysql注入sleep语句引发的拒绝服务
- 解决android模拟器不能访问网络的问题
- Struts2 + uploadify 多文件上传完整的例子!
- .sh文件是什么语言_FastDFS分布式文件系统的搭建安装
- VMware view client for ipad 测试
- Zabbix4.2监控nginx状态
- Silverlight5.0正式发布附下载地址
- 软件测试之 app测试的工具汇总
- 【全是干货!伸手党福利】通过银行卡号判断出所属银行信息
- openstack(云主机热迁移)
- python2到100的素数_python输出2到100之间的素数
- 核函数是什么-数据的升维与降维
- 安装算量软件快速计算管道管件功能
- 重头系统的学习,不会咱就学!2014.6.18
- 嵌入式实操----基于RT1170 首板硬件之EEPROM AT24C16调试(十五)
- 钙锌复合稳定剂-市场现状及未来发展趋势
- 非公经济信息服务公共平台解决方案
- c语言打袋鼠游戏,搜狐 袋鼠过河 动态规划
- ios15html2canvas截图空白怎么解决