Spring Boot 不使用默认的 parent,改用自己的项目的 parent
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。
在初学spring boot
时,官方示例中,都是让我们继承一个spring的 spring-boot-starter-parent 这个parent:
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.1.RELEASE</version>
</parent><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
</dependencies>
但是,一般情况下,在我们自己的项目中,会定义一下自己的 parent 项目,这种情况下,上面的这种做法就行不通了。那么,该如何来做呢?其实,在spring的官网也给出了变通的方法的:
在我们自己 parent 项目中,加下下面的声明
<dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>1.5.1.RELEASE</version><type>pom</type><scope>import</scope></dependency></dependencies>
</dependencyManagement>
请注意,它的 type 是 pom,scope 是 import,这种类型的 dependency 只能在 dependencyManagement 标签中声明。
然后,把我们项目中的 子项目 中,parent 的声明,修改为我们自己项目的 parent 项目就可以了,比如,我的是:
<parent><groupId>org.test</groupId><artifactId>spring</artifactId><version>0.1-SNAPSHOT</version></parent>
有一点,需要注意一下。
在 子项目 的 dependencies 中,不需要(也不能)再次添加对 spring-boot-dependencies 的声明了,否则 子项目 将无法编译通过。
即,在 子项目 中,下面的配置是多余的:
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId>
</dependency>
为什么会这个样子呢?
因为 spring-boot-dependencies 根本就没有对应的jar包,它只是一个 pom 配置,可以去 maven仓库 看一下。
它里面定义了 非常多 的依赖声明。
所以,有了它之后,我们在 子项目 中使用到的相关依赖,就不需要声明version了,如:
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency>
</dependencies>
如,spring-boot-starter-web
和 spring-boot-starter-test
在 spring-boot-dependencies
中的声明分别为:
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>1.5.1.RELEASE</version>
</dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><version>1.5.1.RELEASE</version><exclusions><exclusion><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId></exclusion></exclusions>
</dependency>
参考文档
- spring 官方文档
Spring Boot 不使用默认的 parent,改用自己的项目的 parent相关推荐
- 如何在Spring boot中修改默认端口
文章目录 介绍 使用Property文件 在程序中指定 使用命令行参数 值生效的顺序 如何在Spring boot中修改默认端口 介绍 Spring boot为应用程序提供了很多属性的默认值.但是有时 ...
- spring boot 1.4默认使用 hibernate validator
spring boot 1.4默认使用 hibernate validator 5.2.4 Final实现校验功能.hibernate validator 5.2.4 Final是JSR 349 Be ...
- 2021-08-05SpringCloud升级之路2020.0.x版-5.所有项目的parent与spring-framework-common说明
本系列代码地址:https://github.com/HashZhang/spring-cloud-scaffold/tree/master/spring-cloud-iiford 源代码文件:htt ...
- Spring Boot - 修改Tomcat默认的8080端口
前言 默认情况下,Spring Boot内置的Tomcat服务会使用8080端口启动,我们可以使用以下任何技巧去更改默认的Tomcat端口: 注:我们可以通过server.port=0配置,去自动配置 ...
- Spring Boot端口从默认更改为自定义或新端口
更改Spring Boot应用程序端口的快速指南. application.properties文件和yml文件中的server.port属性的示例. 以及从命令行参数@ SpringBootAppl ...
- spring boot 如何修改默认端口号和context path
创建了SpringBoot项目之后进行运行,当我们需要使用游览器进行访问的时候要输入端口号,那麽我们如何来修改这个端口号呢??? 1.在src/main/resources目录下新建文件applica ...
- Spring Boot缓存实战 默认Cache(ConcurrentMapCacheManager)
Spring boot默认使用的是SimpleCacheConfiguration,即使用ConcurrentMapCacheManager来实现缓存. pom文件 <dependencies& ...
- Spring Boot Vue从零开始搭建系统(三):项目前后端分离
转载 http://www.360doc.com/content/19/1030/11/67080110_870024161.shtml 前言 本文主要是想通过后端 Spring Boot 技术和前端 ...
- spring boot中修改默认端口号
原文:https://blog.csdn.net/zknxx/article/details/53433592 修改application.properties 第一种方式我们只需要在applicat ...
最新文章
- 谷歌发布 RLDS,在强化学习生成、共享和使用数据集
- 计算机领域中的牛人,计算机视觉领域的牛人 | 丕子
- 4.9 总结-深度学习第一课《神经网络与深度学习》-Stanford吴恩达教授
- Electron中通过net的API发出HTTP请求
- CentOS x64上Matlab R2015b的镜像安装方法与卸载
- sql 之as(Aliases)别名(mysql)
- Microsoft SharePoint Server 2010 的新增功能
- 王道考研 计算机网络5 分层结构 协议 服务 接口
- 计算机专业教研成绩,2018学年第一学期计算机组教研组工作计划
- 小型金融知识图谱构流程示范
- 玩转Bootstrap(JS插件篇)-第1章 模态弹出框 :1-2 动画过渡
- 怎样关闭计算机445端口,445端口怎么关闭 445端口关闭方法介绍
- JPA简介及其使用详解
- PS改变证件照片背景颜色
- 图虫知识共享协议_100%避免图片版权侵权的方法(网站图片侵权赔款标准)
- AI绘图之基于文本/图片制图
- C++STL常用算法adjacent_find
- 携手共进 智享未来丨美格智能2023年代理商合作伙伴大会成功举办
- 为什eclipse中调试的时候总是不弹出调试界面而是安装运行
- 防火墙阻止应用程序linux,win10系统下如何解除被防火墙阻止运行的应用程序
热门文章
- 浏览器字体大小设置_CSS之 浏览器解析样式的过程
- springboot超详细教程_超详细便当袋教程 || 特殊时期,自己带饭最安心!
- fxml设置背景_JavaFX – 如何获取Tab,Button等的背景颜色
- 【洛谷 - 快来签到】(数学,公式,溢出爆longlong的处理)
- KITTI自动驾驶数据集可视化教程
- mess系统可以读取opc服务器,C3. Messages
- docker jenkins 公钥_代码自动发布docker(20.10.1)+k8s(1.20.1)
- 摩托罗拉为什么要限制自家linux手机,摩托罗拉为何在安卓手机大放异彩的时候,突然开始衰败了呢?...
- Java迭代器修改链表_Java恼人的迭代器不会返回链表中的元素
- 计算分数数组中去掉最低分的平均分,并打印