生成构建信息

Spring Boot Actuator 的终结点会在文件存在的情况下自动发布有关构建的信息。 提供了 BuildInfo 任务来生成此文件。 使用该任务的最简单方法是通过插件的 DSL:infoMETA-INF/build-info.propertiesSpring中文文档

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

这将配置一个名为 and 的 BuildInfo 任务,如果它存在,则使 Java 插件的任务依赖于它。 任务的目标目录将位于主源集资源的输出目录中(通常为 )。bootBuildInfoclassesMETA-INFbuild/resources/mainSpring中文文档

默认情况下,生成的生成信息派生自项目:Spring中文文档

财产 默认值

build.artifactSpring中文文档

或任务的基本名称bootJarbootWarSpring中文文档

build.groupSpring中文文档

项目组Spring中文文档

build.nameSpring中文文档

项目名称Spring中文文档

build.versionSpring中文文档

项目的版本Spring中文文档

build.timeSpring中文文档

项目构建的时间Spring中文文档

可以使用 DSL 自定义属性:Spring中文文档

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

若要从生成的生成信息中排除任何默认属性,请将其名称添加到排除项中。 例如,可以按如下方式排除该属性:timeSpring中文文档

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

的默认值是生成项目的那一刻。 这样做的副作用是任务永远不会是最新的。 因此,构建将需要更长的时间,因为必须执行更多的任务,包括项目的测试。 另一个副作用是任务的输出总是会发生变化,因此,构建将无法真正重复。 如果对生成性能或可重复性的重视程度高于属性的准确性,请排除该属性,如前面的示例所示。build.timebuild.timetimeSpring中文文档

还可以将其他属性添加到生成信息中:Spring中文文档

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

可以使用 延迟计算其他属性的值。ProviderSpring中文文档

财产 默认值

build.artifactSpring中文文档

或任务的基本名称bootJarbootWarSpring中文文档

build.groupSpring中文文档

项目组Spring中文文档

build.nameSpring中文文档

项目名称Spring中文文档

build.versionSpring中文文档

项目的版本Spring中文文档

build.timeSpring中文文档

项目构建的时间Spring中文文档