export async function executeMavenCommand()

in src/utils/Utils.ts [222:268]


    export async function executeMavenCommand(node?: any): Promise<void> {
        let selectedProject: MavenProject | undefined;
        let selectedCommand: string | undefined;
        if (node instanceof LifecyclePhase) {
            selectedProject = node.project;
            selectedCommand = node.phase;
        } else if (node && node.uri) {
            // for nodes from Project Manager
            const pomPath: string = path.join(Uri.parse(node.uri).fsPath, "pom.xml");
            selectedProject = mavenExplorerProvider.mavenProjectNodes.find(project => project.pomPath.toLowerCase() === pomPath.toLowerCase());
        }

        // select a project(pomfile)
        if (!selectedProject) {
            selectedProject = await selectProjectIfNecessary();
        }

        if (!selectedProject) {
            return;
        }

        // select a command if not provided
        if (!selectedCommand) {
            const LABEL_CUSTOM: string = "Custom ...";
            const LABEL_FAVORITES: string = "Favorites ...";
            selectedCommand = await window.showQuickPick(
                [LABEL_FAVORITES, LABEL_CUSTOM, "clean", "validate", "compile", "test", "package", "verify", "install", "site", "deploy"],
                { placeHolder: "Select the goal to execute ...", ignoreFocusOut: true }
            );
            if (!selectedCommand) {
                return;
            }

            switch (selectedCommand) {
                case LABEL_CUSTOM:
                    await commands.executeCommand("maven.goal.custom", selectedProject);
                    return;
                case LABEL_FAVORITES:
                    await commands.executeCommand("maven.favorites", selectedProject);
                    return;
                default:
                    break;
            }
        }

        await commands.executeCommand(`maven.goal.${selectedCommand}`, selectedProject);
    }