与 Actuator 集成

如果存在 META-INF/build-info.properties 文件,Spring Boot Actuator 会显示与构建相关的信息。build-info 目标会生成此类文件,其中包含项目的坐标和构建时间。它还允许您添加任意数量的附加属性,如下例所示

<project>
	<modelVersion>4.0.0</modelVersion>
	<artifactId>build-info</artifactId>
	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<executions>
					<execution>
						<goals>
							<goal>build-info</goal>
						</goals>
						<configuration>
							<additionalProperties>
								<encoding.source>UTF-8</encoding.source>
								<encoding.reporting>UTF-8</encoding.reporting>
								<java.version>${java.version}</java.version>
							</additionalProperties>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>
</project>

此配置将在预期位置生成一个 build-info.properties,其中包含三个附加键。

java.version 预计是项目中可用的常规属性。它将按您预期的那样进行插值。

spring-boot:build-info

org.springframework.boot:spring-boot-maven-plugin:3.3.0

根据当前 MavenProject 的内容生成 build-info.properties 文件。

可选参数

名称 类型 默认值

additionalProperties

Map

excludeInfoProperties

List

outputFile

File

${project.build.outputDirectory}/META-INF/build-info.properties

skip

boolean

false

time

String

${project.build.outputTimestamp}

参数详情

additionalProperties

要存储在 build-info.properties 文件中的附加属性。在生成的 build-info.properties 中,每个条目都以 build. 为前缀。

名称

additionalProperties

类型

java.util.Map

默认值

用户属性

excludeInfoProperties

应从 build-info.properties 文件中排除的属性。可用于排除标准的 groupartifactnameversion

名称

excludeInfoProperties

类型

java.util.List

默认值

用户属性

outputFile

生成的文件 build-info.properties 的位置。

名称

outputFile

类型

java.io.File

默认值

${project.build.outputDirectory}/META-INF/build-info.properties

用户属性

skip

跳过执行。

名称

skip

类型

boolean

默认值

false

用户属性

spring-boot.build-info.skip

3.1.0

time

用于 build.time 属性的值,其形式适用于 Instant#parse(CharSequence)。如果未设置前者,则默认为 project.build.outputTimestampsession.request.startTime。要完全禁用 build.time 属性,请使用 'off' 或将其添加到 excludeInfoProperties

名称

time

类型

java.lang.String

默认值

${project.build.outputTimestamp}

用户属性

2.2.0