class KotlinGradleBuildCustomizer implements BuildCustomizer<GradleBuild> {

	private final KotlinProjectSettings settings;

	KotlinGradleBuildCustomizer(KotlinProjectSettings kotlinProjectSettings) {
		this.settings = kotlinProjectSettings;
	}

	@Override
	public void customize(GradleBuild build) {<FILL_FUNCTION_BODY>}

	protected abstract void customizeKotlinOptions(KotlinProjectSettings settings, GradleTask.Builder compile);

}

		build.plugins().add("org.jetbrains.kotlin.jvm", (plugin) -> plugin.setVersion(this.settings.getVersion()));
		build.plugins()
			.add("org.jetbrains.kotlin.plugin.spring", (plugin) -> plugin.setVersion(this.settings.getVersion()));
		build.tasks()
			.customizeWithType("org.jetbrains.kotlin.gradle.tasks.KotlinCompile",
					(compile) -> customizeKotlinOptions(this.settings, compile));
	
<no_super_class>