原文参见:Spring Boot入门(二) - starter-parent
本文将介绍spring-boot-starter-parent,此依赖项外部被所有Spring Boot依赖所应用。还将理解此依赖项提供的所有配置,以及更改默认配置。
什么是spring-boot-starter-parent依赖项?
spring-boot-starter-parent是一个parent POM,为基于Spring Boot的应用程序提供依赖(dependency)和插件(plugin)治理,治理了应用到的默认Java版本,Spring Boot应用到的依赖项的默认版本,以及Maven插件的默认配置。
上面列出了一些这个依赖的一些重要配置。如需理解残缺的配置,请参考此链接。
pom.xml
<?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>
从下面的POM文件第9行能够看到,依赖spring-boot-starter-parent继承自spring-boot-dependencies,。
这个POM文件中蕴含了依赖库默认版本的信息。上面的代码包含spring-boot-dependencies中配置的各依赖项的不同版本:
pom.xml
<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>
残缺的列表很长,能够从这个链接中查看残缺的列表。
如何批改依赖项默认版本?
能够看到,spring boot用到的大多数依赖项都有其默认版本。为笼罩依赖项的默认版本,可批改我的项目pom.xml文件的properties tag。
比方,想要在Spring Boot中批改谷歌GSON的默认版本为2.8.2:
<groovy.version>2.4.14</groovy.version><gson.version>2.8.2</gson.version><h2.version>1.4.197</h2.version>
或者想应用2.7 gson依赖关系,properties tag改为:
<properties> <java.version>1.8</java.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <gson.version>2.7</gson.version></properties>
从Eclipse编辑器将会看到以下音讯:The managed version is 2.7 The artifact is managed in org.springframework.boot:spring-boot-dependencies:2.0.0.RELEASE。