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 pluginGit 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,则只需添加插件。除非您要更改父级中定义的设置,否则无需对其进行配置。

猜你喜欢

转载自www.cnblogs.com/improver/p/SpringBoot.html