public ProjectGenerationResult generate()

in initializer-generator/src/main/java/com/alibaba/initializer/generation/BootstrapProjectGenerator.java [51:85]


    public ProjectGenerationResult generate(ProjectGenerationRequest request) {
        Map<String, Object> params = request.getParameters();

        ProjectRequest projReq = new ProjectRequest();
        projReq.getParameters().putAll(params);
        projReq.initialize(metadataProvider.get());

        // use spring component to set properties
        BeanWrapper beanWrapper = new BeanWrapperImpl(projReq);
        beanWrapper.setExtractOldValueForEditor(true);
        beanWrapper.setConversionService(conversionService);
        beanWrapper.setPropertyValues(new MutablePropertyValues(params), true);

        io.spring.initializr.web.project.ProjectGenerationResult pRes = this.projectGenerationInvoker.invokeProjectStructureGeneration(projReq);
        ProjectDescription pDesc = pRes.getProjectDescription();

        ProjectGenerationResult result = new ProjectGenerationResult() {
            @Override
            public String getName() {
                return pDesc.getArtifactId();
            }

            @Override
            public Path getProjectRoot() {
                return pRes.getRootDirectory();
            }

            @Override
            public void cleanUp() {
                projectGenerationInvoker.cleanTempFiles(getProjectRoot());
            }
        };

        return result;
    }