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官方文档中,这三者是放到一起讲的,但没有解释为什么放到一起.大概是默认了读者都是有相关经验的 ...
随机推荐
- gradle配置国内阿里云镜像
对单个项目生效,在项目中的build.gradle修改内容 buildscript { repositories { maven { url 'http://maven.aliyun.com/nexu ...
- pip install mysql_python报错解决办法
首先请注意,mysql_python只支持Python2,所以假如你是python3,就直接用python-connector去吧.下面这一条命令就可以了 pip install mysql-conn ...
- CSS3边框 圆角效果 border-radius
border-radius是向元素添加圆角边框 使用方法: border-radius:10px; /* 所有角都使用半径为10px的圆角 */ border-radius: 5px 5px 5px ...
- 1. svn 简介
参考文档: http://svndoc.iusesvn.com/ SVN的 相关网站 什么是svn?Subversion是一个“集中式”的信息共享系统.版本库是Subversion的核心部分,是数据的 ...
- POJ 3764 The xor-longest Path ( 字典树求异或最值 && 异或自反性质 && 好题好思想)
题意 : 给出一颗无向边构成的树,每一条边都有一个边权,叫你选出一条路,使得此路所有的边的异或值最大. 分析 : 暴力是不可能暴力的,这辈子不可能暴力,那么来冷静分析一下如何去做.假设现在答案的异或值 ...
- js返回上一页并刷新 代码整理
真正好用: 强制载入后刷新一次 在要载入的页面加入以下代码: <script> if(window.name != "bencalie"){ location.relo ...
- C# 很久以前几个常用类
Base64加密解密 using System; using System.Collections.Generic; using System.Linq; using System.Text; nam ...
- 大数据笔记(十五)——Hive的体系结构与安装配置、数据模型
一.常见的数据分析引擎 Hive:Hive是一个翻译器,一个基于Hadoop之上的数据仓库,把SQL语句翻译成一个 MapReduce程序.可以看成是Hive到MapReduce的映射器. Hive ...
- Vue点击切换Class变化,实现Active当前样式
刚自学Vue不久,所以还不太熟,所以直接上代码. 一.先在data里增加一个变量,用来储存当前点击的元素 data() { return { activeClass: -1, // 0为默认选择第一个 ...
- C++新旧类型转换小记
旧式类型转换可应对一切转换,不管合不合理,有没有风险,你让我转我就转给你,后果自负. 新式类型转换比较安全,主要体现在父子类之间的运行时转换 dynamic_cast上,若转换失败则返回空指针,而旧式 ...