アクチュエーターとの統合

ビルド情報の生成

Spring Boot Actuator の info エンドポイントは、META-INF/build-info.properties ファイルの存在下でビルドに関する情報を自動的に公開します。このファイルを生成するために、BuildInfo (Javadoc) タスクが提供されています。タスクを使用する最も簡単な方法は、プラグインの DSL を使用することです。

  • Groovy

  • Kotlin

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

これにより、bootBuildInfo という名前の BuildInfo (Javadoc) タスクが構成され、存在する場合は、Java プラグインの classes タスクがそれに依存するようになります。タスクの宛先ディレクトリは、メインソースセットのリソースの出力ディレクトリにある META-INF (通常は build/resources/main)です。

デフォルトでは、生成されたビルド情報はプロジェクトから取得されます。

プロパティ デフォルト値

build.artifact

bootJar または bootWar タスクのベース名

build.group

プロジェクトのグループ

build.name

プロジェクトの名前

build.version

プロジェクトのバージョン

build.time

プロジェクトが構築されている時間

プロパティは、DSL を使用してカスタマイズできます。

  • Groovy

  • Kotlin

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 プロパティは次のように除外できます。

  • Groovy

  • Kotlin

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

build.time のデフォルト値は、プロジェクトがビルドされている瞬間です。これの副作用は、タスクが最新のものにならないことです。その結果、プロジェクトのテストを含むより多くのタスクを実行する必要があるため、ビルドに時間がかかります。もう 1 つの副作用は、タスクの出力が常に変化するため、ビルドを真に再現できないことです。ビルドのパフォーマンスまたは再現性を build.time プロパティの精度よりも高く評価する場合は、前の例に示すように time プロパティを除外します。

追加のプロパティをビルド情報に追加することもできます。

  • Groovy

  • Kotlin

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

追加のプロパティの値は、Provider を使用して遅延計算できます。