code: @Override
      public void execute() throws MojoExecutionException {
          try {
              ensureNotExisting();
              createDirectories();
  
              if ("blank".equalsIgnoreCase(skel)) {
                  createApplicationConfiguration();
                  createBlankPomFile();
                  createPackageStructure();
                  copyDefaultErrorTemplates();
              } else {
                  createApplicationConfiguration();
                  createPomFile();
                  createPackageStructure();
                  createDefaultController();
                  createTests();
                  copyAssets();
                  createWelcomeTemplate();
                  copyDefaultErrorTemplates();
              }
  
              printStartGuide();
          } catch (IOException e) {
              throw new MojoExecutionException("Error during project generation", e);
          }
      }
docs: Generates the project structure.
  If a directory with the 'artifactId\ name already exist, nothing is generated as we don't want to overridde
  anything.
  
  @throws MojoExecutionException