@Override
  protected void doExecute() throws Exception {
    var project = getIdeProject();
    var projectSystemId = getExternalSystemId();
    var projectPath = getExternalProjectPath();

    var progressNotificationManager = ExternalSystemProgressNotificationManagerImpl.getInstanceImpl();
    var progressNotificationListener = wrapWithListener(progressNotificationManager);
    for (var executionAware : ExternalSystemExecutionAware.getExtensions(projectSystemId)) {
      executionAware.prepareExecution(this, projectPath, myIsPreviewMode, progressNotificationListener, project);
    }

    var settings = ExternalSystemApiUtil.getExecutionSettings(project, projectPath, projectSystemId);
    if (StringUtil.isNotEmpty(myVmOptions)) {
      settings.withVmOptions(ParametersListUtil.parse(myVmOptions));
    }
    if (StringUtil.isNotEmpty(myArguments)) {
      settings.withArguments(ParametersListUtil.parse(myArguments));
    }

    TargetEnvironmentConfigurationProvider environmentConfigurationProvider = null;
    for (var executionAware : ExternalSystemExecutionAware.getExtensions(projectSystemId)) {
      if (environmentConfigurationProvider == null) {
        environmentConfigurationProvider = executionAware.getEnvironmentConfigurationProvider(projectPath, myIsPreviewMode, project);
      }
    }
    ExternalSystemExecutionAware.setEnvironmentConfigurationProvider(settings, environmentConfigurationProvider);

    resolveProjectInfo(settings);
  }
@Override
  protected void doExecute()