强烈建议您选择一个支持依赖关系管理并且可以使用发布到“ 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,则只需添加插件。除非您要更改父级中定义的设置,否则无需对其进行配置。