对于最新稳定版本,请使用 Spring Boot 4.0.4spring-doc.cadn.net.cn

与 Actuator 集成

生成构建信息

Spring Boot Actuator 的 info 端点在存在 META-INF/build-info.properties 文件时,会自动发布有关您的构建信息。 提供了一个 BuildInfo 任务来生成此文件。 使用该任务最简单的方法是通过插件的 DSL:spring-doc.cadn.net.cn

springBoot {
	buildInfo()
}
springBoot {
	buildInfo()
}

这将配置一个名为 bootBuildInfoBuildInfo 任务,并且如果存在,会使 Java 插件的 classes 任务依赖于它。 该任务的目标目录将是主源集资源输出目录中的 META-INF(通常为 build/resources/main)。spring-doc.cadn.net.cn

默认情况下,生成的构建信息来自项目:spring-doc.cadn.net.cn

<property> </property> 默认值

build.artifactspring-doc.cadn.net.cn

bootJarbootWar 任务的基名称spring-doc.cadn.net.cn

build.groupspring-doc.cadn.net.cn

项目的组spring-doc.cadn.net.cn

build.namespring-doc.cadn.net.cn

项目名称spring-doc.cadn.net.cn

build.versionspring-doc.cadn.net.cn

项目的版本spring-doc.cadn.net.cn

build.timespring-doc.cadn.net.cn

项目构建的时间spring-doc.cadn.net.cn

可以使用 DSL 自定义这些属性:spring-doc.cadn.net.cn

springBoot {
	buildInfo {
		properties {
			artifact = 'example-app'
			version = '1.2.3'
			group = 'com.example'
			name = 'Example application'
		}
	}
}
springBoot {
	buildInfo {
		properties {
			artifact.set("example-app")
			version.set("1.2.3")
			group.set("com.example")
			name.set("Example application")
		}
	}
}

要从生成的构建信息中排除任何默认属性,请将其名称添加到 excludes 中。 例如,可以按如下方式排除 time 属性:spring-doc.cadn.net.cn

springBoot {
	buildInfo {
		excludes = ['time']
	}
}
springBoot {
	buildInfo {
		excludes.set(setOf("time"))
	}
}

build.time 的默认值是项目构建时的时间戳。 这样带来的一个副作用是,该任务永远不会处于最新(up-to-date)状态。 因此,构建过程将花费更长时间,因为包括项目测试在内的更多任务都必须被执行。 另一个副作用是,该任务的输出将始终发生变化,从而导致构建结果无法真正可重复。 如果你更看重构建性能或可重复性,而非 build.time 属性的精确性,可以按照前面示例所示,排除 time 属性。spring-doc.cadn.net.cn

还可以向构建信息中添加额外的属性:spring-doc.cadn.net.cn

springBoot {
	buildInfo {
		properties {
			additional = [
				'a': 'alpha',
				'b': 'bravo'
			]
		}
	}
}
springBoot {
	buildInfo {
		properties {
			additional.set(mapOf(
				"a" to "alpha",
				"b" to "bravo"
			))
		}
	}
}

可以通过使用 Provider 来惰性地计算附加属性的值。spring-doc.cadn.net.cn