如何保证交叉表编译器和目标系统版本一致_Spring Boot2.1.6:13、构建系统

本文深入探讨了如何使用SpringBoot,包括推荐的构建系统Maven和Gradle的使用,依赖管理的细节,以及SpringBoot启动器的介绍。强调了依赖版本的自动管理,Maven的spring-boot-starter-parent父POM提供的默认配置,以及Gradle插件的使用。此外,还提到了Ant+Ivy作为构建选项,并介绍了启动器如何简化添加Spring和相关技术的依赖。
摘要由CSDN通过智能技术生成

上一篇[11、开发你的第一个SpringBoot应用]

下一篇[14、构建你的代码]

ae9218f9817c2e704719bfdeb1b6eb36.png
英文原文:https://docs.spring.io/spring-boot/docs/2.1.6.RELEASE/reference/html/using-boot.html英文原文:https://docs.spring.io/spring-boot/docs/2.1.6.RELEASE/reference/html/using-boot-build-systems.htmlGitHub:https://github.com/jijicai/Spring/tree/master/spring-boot

第三部分:使用 Spring Boot

本节更详细地介绍如何使用 Spring Boot。它涵盖了构建系统、自动配置以及如何运行应用程序等主题。我们还介绍了一些 Spring Boot 的最佳实践。尽管 Spring Boot 没有什么特别之处(它只是你可以使用的另一个库),但是如果遵循以下建议,你的开发过程变得更容易一些。

如果你刚开始使用 Spring Boot,那么在进入本节之前,你可能应该阅读一下入门指南(Getting Started)。

13、构建系统

强烈建议你选择一个支持依赖管理的构建系统,并且该系统可以使用发布到“Maven Central”仓库的构件。我们推荐你选择 Maven 或 Gradle。让 Spring Boot 与其他构建系统(如:Ant)一起工作是可能的,但是它们并没有得到特别好的支持。

13.1、依赖管理

Spring Boot 的每个发布版本都提供了一个它支持的依赖关系的列表。实际上,你不需要为构建配置中的任何依赖项提供版本,由 Spring Boot 为你管理。当你升级 Spring Boot 本身时,这些依赖项也会以一致的方式升级。

注意:如果需要,你仍可以指定一个版本并覆盖 Spring Boot 的推荐。

管理列表包含可以与 Spring Boot 一起使用的所有 Spring 模块,以及第三方库的细化列表。该列表作为一个标准的材料清单(spring-boot-dependencies)提供,可以与 Maven 和 Gradle 一起使用。

警告:Spring Boot 的每个发布版本都与 Spring 框架的基础版本相关联。我们强烈建议不要指定它的版本。

13.2、Maven

Maven 用户可以从 spring-boot-starter-parent 项目继承,以获得合理的默认值。父项目提供以下特性:

(1)Java 1.8 作为默认编译器级别。

(2)UTF-8 源码编码。

(3)从 spring-boot-dependencies pom 继承的依赖管理部分,用于管理公共依赖项的版本。当在你自己的 pom 中使用这些依赖项时,此依赖项管理允许你省略这些依赖项的 标记。

(4)使用 repackage 的执行ID 来执行 repackage 目标。

(5)合理的资源筛选。

(6)合理的插件配置(exec 插件、Git 提交ID 和 shade)。

(7)适用于 application.properties 和 application.yml 的合理资源筛选,包括特定配置的文件。(例如:application-dev.properties 和 application-dev.yml)

请注意,由于 application.properties 和 application.yml 文件接受 Spring 样式的占位符(${...}),Maven 过滤更改为使用 @...@ 占位符。(你可以通过设置一个名为 resource.delimiter 的 Maven 属性来覆盖它)

13.2.1、继承启动器父级(Starter Parent)

要将项目配置为从 spring-boot-starter-parent 继承,请按如下设置 parent 标签:

9d2e4a89257baa547a72fc32cdf76a4a.png

注意:你应该只需要在此依赖项上指定 Spring Boot 版本号。如果你导入其他的starters ,你可以安全地省略版本号。

使用该设置,你还可以通过覆盖自己项目中的属性来覆盖各个依赖项。例如,要升级到另一个 Spring Data 版本(Release Train),可以将以下内容添加到 pom.xml 中:

fc0e441b40a5b44dd9241d706eafe31a.png

提示:有关支持的属性列表,请查看 spring-boot-dependencies pom。

https://github.com/spring-projects/spring-boot/tree/v2.1.6.RELEASE/spring-boot-project/spring-boot-dependencies/pom.xml

13.2.2、在没有父级 POM 的情况下使用 Spring Boot

不是每个人都喜欢从 spring-boot-starter-parent POM 继承的。你可能需要使用自己的企业标准父类,或者你可能更喜欢显示地声明所有 Maven 配置。

如果你不想使用 spring-boot-starter-parent,你仍可以通过使用 scope=import 依赖项来保持依赖项管理(而不是插件管理)的优点,如下:

2f4b29066aced778219b9ce59b13ff72.png

如上所述,前面的示例设置不允许通过使用属性覆盖各个依赖项。要实现相同的结果,你需要在 spring-boot-dependencies 条目之前在项目的 dependencyManagement 中添加一个条目。例如,要升级到另一个 Spring Data 版本(Release Train),你可以将以下元素添加到 pom.xml 中:

c8458aeb9b72d13fc817d2f22ea4029c.png

注意:在之前的示例中,我们指定了一个 BOM,但任何依赖类型都可以用相同的方式覆盖。

13.2.3、使用 Spring Boot 的 Maven 插件

Spring Boot 包括一个 Maven 插件,这个插件可以将项目打包为可执行 jar 文件。如果要使用这个插件,请将其添加到 部分,如下面示例所示:

c8037eada7502d6c99191eb2f2051b33.png

注意:如果使用 spring-boot-starter-parent pom,则只需要添加这个插件。不需要配置它,除非你想更改它在父级中的定义的设置。

13.3、Gradle

要了解如何在 Gradle 中使用 Spring Boot,请参考 Spring Boot 的 Gradle 插件文档:

(1)、参考手册(https://docs.spring.io/spring-boot/docs/2.1.6.RELEASE/gradle-plugin/reference/html)。

(2)、API(https://docs.spring.io/spring-boot/docs/2.1.6.RELEASE/gradle-plugin/api)。

13.4、Ant

可以使用 Apache Ant + Ivy 构建 Spring Boot 项目。使用 spring-boot-antlib “AntLib” 模块来帮助 Ant 创建可执行的 jars 文件。

要声明依赖项,典型的 ivy.xml 文件看起来类似下面的示例:

ac41519b5dc05a3b903645d9fb1d1d4d.png

典型的 build.xml 文件看起来类似下面的示例:

337bbcfc83509f85707a9787ba0513b8.png

提示:如果你不想使用 spring-boot-antlib 模块,请查看章节91.9,“不使用 spring-boot-antlib,Ant 如何构建可执行的存档文件(jars)”。

https://docs.spring.io/spring-boot/docs/2.1.6.RELEASE/reference/html/howto-build.html#howto-build-an-executable-archive-with-ant

13.5、启动器(Starters)

启动器是一组方便的依赖关系描述符,你可以将其包含在应用程序中。你可以获得所需的所有 Spring 和相关技术的一站式服务,而不必搜索示例代码和复制粘贴大量的依赖关系描述符。例如,如果你希望开始使用 Spring 和 JPA 进行数据库访问,则请在项目中包含 spring-boot-starter-data-jpa 依赖项。

启动器包含许多依赖项,你需要这些依赖项来快速启动和运行项目,并使用一组一致的、受支持的托管传递依赖项。

名称中包含的内容(What's in a name)

所有官方的启动器都遵循类似的命名模式:spring-boot-starter-*,其中 * 是特定类型的应用程序。这种命名结构是为了在需要查找启动器时提供帮助。许多 IDEs 中的 Maven 集成允许你按照名称来搜索依赖项。例如,安装了适当的 Eclipse 或 STS 插件后,你可以在 POM 编辑器中按快捷键:ctrl-space,并且输入”spring-boot-starter“来获得完整列表。

正如在“创建你自己的启动器”一节中所解释的,第三方启动器不应当以 spring-boot 开头,因为它是为官方的 Spring Boot 工件(artifacts)保留的。相反,第三方启动器通常以项目的名称开头。例如,一个名为 thirdpartyproject 的第三方启动器项目通常被命名为:thirdpartyproject-spring-boot-starter。

在下面的 org.springframework.boot 组中,Spring Boot 提供了以下应用启动器:

表 13.1:Spring Boot 应用启动器

7df36b1e2379557e82da9a96b3f286fa.png

除了应用启动器之外,还可以使用以下启动器添加生产就绪特性:

表 13.2:Spring Boot 生产启动器

436a91585cb5c97f5d773c3b49d925f7.png

最后,Spring Boot 还包括以下启动器,如果你想排除或交换特定的技术方面,可以使用它们。

表13.3:Spring Boot 技术启动器

c5c11e6e5ce0ea1ef39a01c8bec0256d.png

提示:有关其他的社区贡献的启动器的列表,请查看GitHub上的在 spring-boot-starters 模块中的 README 文件。

上一篇[11、开发你的第一个SpringBoot应用]

下一篇[14、构建你的代码]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值