Springboot教程:starter-parent示例
spring-boot-starter-parent
所有Spring启动依赖项在内部使用的依赖关系。我们还将了解此依赖项提供的所有配置以及如何覆盖它们。什么是spring-boot-starter-parent依赖?
spring-boot-starter-parent
是基于引导Spring应用程序提供的依赖和插件管理父POM。它包含要使用的Java的默认版本,Spring Boot使用的依赖项的默认版本以及Maven插件的默认配置。
此文件提供的几个重要配置如下。请参阅此链接以阅读完整配置。
pom.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd; <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>${revision}</version> <relativePath>../../spring-boot-dependencies</relativePath> </parent> <artifactId>spring-boot-starter-parent</artifactId> <packaging>pom</packaging> <name>Spring Boot Starter Parent</name> <description>Parent pom providing dependency and plugin management for applications built with Maven</description> <properties> <java.version>1.8</java.version> <resource.delimiter>@</resource.delimiter> <!-- delimiter that doesn't clash with Spring ${} placeholders --> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <maven.compiler.source>${java.version}</maven.compiler.source> <maven.compiler.target>${java.version}</maven.compiler.target> </properties> ... <resource> <directory>${basedir}/src/main/resources</directory> <filtering>true</filtering> <includes> <include>**/application*.yml</include> <include>**/application*.yaml</include> <include>**/application*.properties</include> </includes> </resource> </project> |
...
<resource>
<directory>${basedir}/src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>**/application*.yml</include>
<include>**/application*.yaml</include>
<include>**/application*.properties</include>
</includes>
</resource>
</project>
spring-boot-starter-parent
依赖关系进一步继承spring-boot-dependencies
,在上述POM文件顶部第9行定义。
此文件是实际文件,其中包含用于所有库的默认版本的信息。以下代码显示了配置的各种依赖项的不同版本spring-boot-dependencies
:
pom.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<properties> <!-- Dependency versions --> <activemq.version>5.15.3</activemq.version> <antlr2.version>2.7.7</antlr2.version> <appengine-sdk.version>1.9.63</appengine-sdk.version> <artemis.version>2.4.0</artemis.version> <aspectj.version>1.8.13</aspectj.version> <assertj.version>3.9.1</assertj.version> <atomikos.version>4.0.6</atomikos.version> <bitronix.version>2.1.4</bitronix.version> <byte-buddy.version>1.7.11</byte-buddy.version> <caffeine.version>2.6.2</caffeine.version> <cassandra-driver.version>3.4.0</cassandra-driver.version> <classmate.version>1.3.4</classmate.version> ... ... </properties> |
...
...
</properties>
上面的列表很长,您可以在此链接中阅读完整列表。
如何覆盖默认依赖版本?
如您所见,spring boot具有用于大多数依赖项的默认版本。您可以properties
在项目pom.xml
文件的标记中覆盖您选择或项目需要的版本。
例如,Spring boot使用google GSON库的默认版本 2.8.2.
1 2 3 |
<groovy.version>2.4.14</groovy.version> <gson.version>2.8.2</gson.version> <h2.version>1.4.197</h2.version> |
我想使用2.7
gson依赖。所以我会在这样的属性标签中提供这些信息。
1 2 3 4 5 |
<properties> <java.version>1.8</java.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <gson.version>2.7</gson.version> </properties> |
现在在您的eclipse编辑器中,您可以看到以下消息:托管版本为2.7该工件在org.springframework.boot中管理:spring-boot-dependencies:2.0.0.RELEASE。