void (@NotNull Project project, @NotNull @Nls String executionName, @NotNull Class<? extends Task> taskClass, @NotNull String projectPath, @NotNull String gradlePath, @Nullable String taskConfiguration, @NotNull ProgressExecutionMode progressExecutionMode, @Nullable TaskCallback callback, @NotNull Set<Class<?>> toolingExtensionClasses) { String taskName = taskClass.getSimpleName(); String taskType = taskClass.getName(); Set<Class<?>> tools = new HashSet<>(toolingExtensionClasses); tools.add(taskClass); tools.add(GsonBuilder.class); tools.add(ExternalSystemRtClass.class); tools.add(GradleToolingExtensionClass.class); tools.add(GradleToolingExtensionImplClass.class); String initScript = GradleInitScriptUtil.loadTaskInitScript(gradlePath, taskName, taskType, tools, taskConfiguration); runCustomTaskScript(project, executionName, projectPath, gradlePath, progressExecutionMode, callback, initScript, taskName); }