public void customize()

in initializer-generator/src/main/java/io/spring/start/site/extension/dependency/springnative/SpringNativeMavenBuildCustomizer.java [44:91]


	public void customize(MavenBuild build) {
		Dependency dependency = build.dependencies().get("native");
		String springNativeVersion = dependency.getVersion().getValue();
		boolean hasTestSupport = !NATIVE_NO_TEST_SUPPORT.match(VersionParser.DEFAULT.parse(springNativeVersion));
		boolean latestNativeBuildTools = NATIVE_011.match(VersionParser.DEFAULT.parse(springNativeVersion));

		// Native build tools
		String nativeBuildToolsVersion = SpringNativeBuildtoolsVersionResolver.resolve(springNativeVersion);
		if (nativeBuildToolsVersion != null) {
			build.properties().property("repackage.classifier", "");
		}

		// Expose a property
		build.properties().version(VersionProperty.of("spring-native.version"), springNativeVersion);

		// Update dependency to reuse the property
		build.dependencies().add("native",
				Dependency.from(dependency).version(VersionReference.ofProperty("spring-native.version")));

		// AOT plugin
		build.plugins().add("org.springframework.experimental", "spring-aot-maven-plugin", (plugin) -> {
			plugin.version("${spring-native.version}");
			if (hasTestSupport) {
				plugin.execution("test-generate", (execution) -> execution.goal("test-generate"));
			}
			plugin.execution("generate", (execution) -> execution.goal("generate"));
		});

		// Spring Boot plugin
		build.plugins().add("org.springframework.boot", "spring-boot-maven-plugin",
				(plugin) -> plugin.configuration((configuration) -> {
					if (nativeBuildToolsVersion != null) {
						configuration.add("classifier", "${repackage.classifier}");
					}
					configuration.add("image", (image) -> {
						image.add("builder", "paketobuildpacks/builder:tiny");
						image.add("env", (env) -> env.add("BP_NATIVE_IMAGE", "true"));
					});
				}));

		if (build.dependencies().has("data-jpa")) {
			configureHibernateEnhancePlugin(build);
		}

		if (nativeBuildToolsVersion != null) {
			configureNativeProfile(build, hasTestSupport, latestNativeBuildTools, nativeBuildToolsVersion);
		}
	}