SpringBoot官方文档学习(二)使用Spring Boot构建系统
强烈建议您选择一个支持依赖关系管理并且可以使用发布到“ Maven Central”仓库的构建系统。我们建议您选择Maven或Gradle。其他构建系统(例如,Ant)也可以和Spring Boot一起使用,但是它们并没有得到很好的支持。
1.依赖管理
每个Spring Boot版本都提供了它所支持的依赖关系列表。实际上,您不需要为构建配置中的这些依赖项提供版本,因为Spring Boot会为您管理该版本。当您升级Spring Boot本身时,这些依赖项也会以一致的方式升级。
小贴士:您仍然可以指定版本,并在需要时覆盖Spring Boot的建议。
依赖关系列表包含了可以和Spring Boot一起使用的所有spring模块以及完善的第三方库列表。该列表作可作为(spring-boot-dependencies
)与Maven和Gradle一起使用的标准清单。
小贴士:Spring Boot的每个发行版都与Spring Framework的基本版本相关联。强烈建议您不要指定其版本。
2.Maven
Maven用户可以从 spring-boot-starter-parent
项目继承来获得合理的默认值。父项目提供以下功能:
- Java 1.8是默认的编译器。
- UTF-8源编码。
- 依赖管理部分,继承自spring-boot-dependencies的pom,用来管理公共依赖项的版本。当在自己的pom中使用这些依赖关系时,可以为这些依赖关系省略<version>标签。
repackage
目标执行具有repackage
执行ID。- 合理的资源过滤。
- 合理的插件配置(exec plugin, Git commit ID, and shade).
- 对包含特定配置的application.properties和application.yml文件进行合理的资源过滤。
请注意,由于application.properties和application.yml文件接受Spring样式的占位符($ {…}),因此Maven过滤已更改为使用@ .. @占位符。(您可以通过设置一个名为resource.delimiter的Maven属性来覆盖它。)
3.继承Starter Parent
要将项目配置为从spring-boot-starter-parent继承,请设置父项,如下所示:
<!-- Inherit defaults from Spring Boot -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.8.RELEASE</version>
</parent>
小贴士:只要为该依赖项指定Spring Boot版本号后,如果导入其他启动器,就可以安全地省略版本号。
使用该设置,您还可以通过覆盖自己项目中的属性来覆盖各个依赖项。例如,要升级到另一个Spring Data发布系列,可以将以下内容添加到pom.xml中:
<properties>
<spring-data-releasetrain.version>Fowler-SR2</spring-data-releasetrain.version>
</properties>
4.在没有Parent POM的情况下使用Spring Boot
并非每个人都喜欢从spring-boot-starter-parent POM继承。您可能需要使用自己所在企业的标准parent,或者可能希望显式声明所有Maven配置。
如果您不想使用spring-boot-starter-parent,仍然可以通过使用 scope=import
依赖项来保留依赖项管理(而不是插件管理)的好处,如下所示:
<dependencyManagement>
<dependencies>
<dependency>
<!-- Import dependency management from Spring Boot -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.1.8.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
如上所述,前面的示例设置不允许您使用属性来覆盖各个依赖项。为了获得相同的结果,需要在spring-boot-dependencies条目之前的项目的dependencyManagement中添加一个条目。例如,要升级到另一个Spring Data发布系列,可以将以下元素添加到pom.xml中:
<dependencyManagement>
<dependencies>
<!-- Override Spring Data release train provided by Spring Boot -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-releasetrain</artifactId>
<version>Fowler-SR2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.1.8.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
小贴士:在前面的示例中,我们指定了BOM,您也可以以相同方式覆盖任何依赖项类型。
5.使用Spring Boot Maven插件
Spring Boot包含一个Maven插件,可以将项目打包为可执行jar。如果要使用插件,请将其添加到您项目的pom.xml中的<plugins>部分,如以下示例所示:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
小贴士:如果您使用Spring Boot启动器的父pom,则只需添加插件。除非您要更改父级中定义的设置,否则无需对其进行配置。
SpringBoot官方文档学习(二)使用Spring Boot构建系统的更多相关文章
- SpringBoot官方文档学习(一)开发你的第一个Spring Boot应用
一些准备工作: 本节介绍如何开发一个简单的“ Hello World!” Web应用程序,该应用程序重点介绍Spring Boot的一些关键功能.我们使用Maven来构建该项目,因为大多数IDE都支持 ...
- SpringBoot官方文档学习(二)Externalized Configuration(外部化配置)
Spring Boot允许您将配置外部化,以便可以在不同的环境中使用相同的应用程序代码.您可以使用属性文件.YAML文件.环境变量和命令行参数来具体化配置.属性值可以通过使用@Value注释直接注入b ...
- SpringBoot官方文档学习(三)配置文件、日志、国际化和JSON
一.Profiles Spring配置文件提供了一种方法来隔离应用程序配置的各个部分,并使其仅在某些环境中可用.任何@Component.@Configuration或@ConfigurationPr ...
- SpringBoot官方文档学习(一)SpringApplication
Springboot通过main方法启动,在许多情况下,委派给静态SpringApplication.run方法: public static void main(String[] args) { S ...
- Spring 4 官方文档学习(十二)View技术
关键词:view technology.template.template engine.markup.内容较多,按需查用即可. 介绍 Thymeleaf Groovy Markup Template ...
- Spring Framework 官方文档学习(四)之Validation、Data Binding、Type Conversion(二)
接前一篇 Spring Framework 官方文档学习(四)之Validation.Data Binding.Type Conversion(一) 本篇主要内容:Spring Type Conver ...
- Spring Boot 官方文档学习(一)入门及使用
个人说明:本文内容都是从为知笔记上复制过来的,样式难免走样,以后再修改吧.另外,本文可以看作官方文档的选择性的翻译(大部分),以及个人使用经验及问题. 其他说明:如果对Spring Boot没有概念, ...
- Spring boot官方文档学习(一)
个人说明:本文内容都是从为知笔记上复制过来的,样式难免走样,以后再修改吧.另外,本文可以看作官方文档的选择性的翻译(大部分),以及个人使用经验及问题. 其他说明:如果对Spring Boot没有概念, ...
- Spring Framework 官方文档学习(四)之Validation、Data Binding、Type Conversion(一)
题外话:本篇是对之前那篇的重排版.并拆分成两篇,免得没了看的兴趣. 前言 在Spring Framework官方文档中,这三者是放到一起讲的,但没有解释为什么放到一起.大概是默认了读者都是有相关经验的 ...
随机推荐
- JMeter 性能测试实例
一.性能测试分类: 1.基准测试 2.并发测试 3.负载测试 4.压力测试 1.基准测试: 也是单用户测试,测试环境确定以后,对业务模型中的重要业务做单独的测试,获取单用户运行时的各项性能指标,为多用 ...
- bzoj5017 [Snoi2017]炸弹 (线段树优化建图+)tarjan 缩点+拓扑排序
题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=5017 题解 这个题目方法挺多的. 线段树优化建图 线段树优化建图的做法应该挺显然的,一个炸弹能 ...
- 【BZOJ2870】最长道路
权限题 题意 给出一棵树,点有点权,找到树上的一条路径使得路径上点的个数和其中点权最小的点的点权之积最大,输出最大值. Sol 边分治板子题啦. 边分治后对于分出来的两棵子树 , 按到左右根的最小点权 ...
- mongodb replica set搭建
1/安装mongodb 配置repo: [mongodb-org-3.4]name=MongoDB Repositorybaseurl=https://repo.mongodb.org/yum/red ...
- React Native 之组件的定义
App.js 也可以认为是一个组件,那么此文件中能定义多个组件吗? 方式一 import Hello from './Hello' export default class App extends C ...
- 【BZOJ2200】道路和航线(并查集,拓扑排序,最短路)
题意:n个点,有m1条双向边,m2条单向边,双向边边长非负,单向边可能为负 保证如果有一条从x到y的单项边,则不可能存在从y到x的路径 问从S出发到其他所有点的最短路 n<=25000,n1,m ...
- 电脑新安装JDK版本并运行使用该JDK版本问题
情景:电脑上已正常安装一个jdk版本,如:1.7.0_71,因考虑到一些情况,现需要使用版本为1.7.0_80(1.8),故需新安装JDK,并使服务可以运行使用新安装的JDK版本. 网络找寻方法: ( ...
- MySql中报错:java.sql.SQLException: Incorrect string value: '\xF0\x9F\x90\xBB' for column
问题描述: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x90\xBB' for column 'nickName' at row ...
- APIO2019解题报告
「APIO 2019」奇怪装置 题目描述 有无限个二元组,每个二元组为\(((t+\left\lfloor\frac{t}{B} \right\rfloor)\%A,t \% B)\),给出一些区间, ...
- UOJ37. 【清华集训2014】主旋律
http://uoj.ac/problem/37 题解 题目是让我们求出有多少个边集可以使这张图强连通. 先补集转化一下,求这张图不强连通的方案数. 我们考虑这样的图缩完点之后的情况,既然不强连通,那 ...