public void customize()

in initializer-generator/src/main/java/com/alibaba/initializer/generation/extension/build/maven/SpringBootBomMavenCustomizer.java [50:78]


    public void customize(MavenBuild build) {
        InitializrConfiguration.Env.Maven maven = this.metadata.getConfiguration().getEnv().getMaven();
        String springBootVersion = this.description.getPlatformVersion().toString();
        InitializrConfiguration.Env.Maven.ParentPom parentPom = maven.resolveParentPom(springBootVersion);

        if (!build.plugins().has("org.springframework.boot", "spring-boot-maven-plugin")) {
            return;
        }
        if (!parentPom.isIncludeSpringBootBom()) {
            return;
        }

        // ugly !!!!!!
        try {
            Field parendField = build.settings().getClass().getDeclaredField("parent");
            parendField.setAccessible(true);
            parendField.set(build.settings(), null);
        } catch (Exception e) {
            throw new IllegalStateException("remove parent node error", e);
        }

        build.plugins().remove("org.springframework.boot", "spring-boot-maven-plugin");
        build.plugins().add("org.springframework.boot", "spring-boot-maven-plugin", builder -> {
                    builder.version(springBootVersion);
                    builder.execution("repackage", execution -> execution.goal("repackage"));
                    builder.configuration(conf -> conf.add("mainClass", description.getPackageName() + "." + description.getApplicationName()));
                }
        );
    }