void (@NotNull Project project, @Nullable Executor executor, @NotNull String workDirectory, @NotNull @NlsSafe String fullCommandLine) { final ExternalTaskExecutionInfo taskExecutionInfo; try { taskExecutionInfo = buildTaskInfo(workDirectory, fullCommandLine, executor); } catch (CommandLineArgumentException ex) { @NlsSafe String italicFormat = "<i>%s</i> \n"; final NotificationData notificationData = new NotificationData( GradleBundle.message("gradle.command.line.parse.error.invalid.arguments"), String.format(italicFormat, fullCommandLine) + ex.getMessage(), NotificationCategory.WARNING, NotificationSource.TASK_EXECUTION ); notificationData.setBalloonNotification(true); ExternalSystemNotificationManager.getInstance(project).showNotification(GradleConstants.SYSTEM_ID, notificationData); return; } ExternalSystemUtil.runTask(taskExecutionInfo.getSettings(), taskExecutionInfo.getExecutorId(), project, GradleConstants.SYSTEM_ID, null, ProgressExecutionMode.NO_PROGRESS_ASYNC); RunnerAndConfigurationSettings configuration = ExternalSystemUtil.createExternalSystemRunnerAndConfigurationSettings(taskExecutionInfo.getSettings(), project, GradleConstants.SYSTEM_ID); if (configuration == null) return; RunManager runManager = RunManager.getInstance(project); final RunnerAndConfigurationSettings existingConfiguration = runManager.findConfigurationByTypeAndName(configuration.getType(), configuration.getName()); if (existingConfiguration == null) { runManager.setTemporaryConfiguration(configuration); } else { runManager.setSelectedConfiguration(existingConfiguration); } }