转-Spring-Boot入门二-starterparent

4次阅读

共计 2996 个字符,预计需要花费 8 分钟才能阅读完成。

原文参见: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。

正文完
 0