class AnnotationProcessorExclusionBuildCustomizer implements BuildCustomizer<MavenBuild> {

	private static final List<String> KNOWN_ANNOTATION_PROCESSORS = Collections
		.singletonList("configuration-processor");

	private final InitializrMetadata metadata;

	AnnotationProcessorExclusionBuildCustomizer(InitializrMetadata metadata) {
		this.metadata = metadata;
	}

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

	@Override
	public int getOrder() {
		return 5;
	}

	private boolean isAnnotationProcessor(String id) {
		Dependency dependency = this.metadata.getDependencies().get(id);
		return (dependency != null) && Dependency.SCOPE_ANNOTATION_PROCESSOR.equals(dependency.getScope());
	}

}

		if (!build.plugins().has("org.springframework.boot", "spring-boot-maven-plugin")) {
			return;
		}
		List<io.spring.initializr.generator.buildsystem.Dependency> dependencies = build.dependencies()
			.ids()
			.filter(this::isAnnotationProcessor)
			.filter((id) -> !KNOWN_ANNOTATION_PROCESSORS.contains(id))
			.map((id) -> build.dependencies().get(id))
			.toList();
		if (!dependencies.isEmpty()) {
			build.plugins()
				.add("org.springframework.boot", "spring-boot-maven-plugin", (plugin) -> plugin
					.configuration((configuration) -> configuration.configure("excludes", (excludes) -> {
						for (io.spring.initializr.generator.buildsystem.Dependency dependency : dependencies) {
							excludes.add("exclude", (exclude) -> {
								exclude.add("groupId", dependency.getGroupId());
								exclude.add("artifactId", dependency.getArtifactId());
							});
						}
					})));
		}
	
<no_super_class>