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

与 Actuator 集成

生成生成 Build Information

Spring Boot Actuator 的infoEndpoint 会在存在META-INF/build-info.properties文件。 一个BuildInfotask 来生成此文件。 使用该任务的最简单方法是通过插件的 DSL:spring-doc.cadn.net.cn

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

这将配置BuildInfo任务名称bootBuildInfo如果存在,则使 Java 插件的classes任务取决于它。 任务的目标目录将为META-INF在主源集资源的 output 目录中(通常为build/resources/main).spring-doc.cadn.net.cn

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

财产 默认值

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")
		}
	}
}

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

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

的默认值build.time是构建项目的时刻。 这样做的副作用是任务永远不会是最新的。 因此,构建将花费更长的时间,因为必须执行更多任务,包括项目的测试。 另一个副作用是任务的输出将始终更改,因此,构建不会真正可重复。 如果您更看重构建性能或可重复性,而不是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