web-dev-qa-db-fra.com

Code Visual Studio: exécution de preLaunchTask avec plusieurs tâches

J'essaie de comprendre comment exécuter plusieurs tâches à la fois dans la pré-lancement du fichier launch.json.

Mon code dans le fichier tasks.json est le suivant:

    "version": "2.0.0",
"tasks": [
    {
        "label": "CleanUp_Client",
        "type": "Shell",
        "command": "rm",
        "args": [
            "-f",
            "Client"
        ],
    },
    {
        "label": "Client_Build",
        "type": "Shell",
        "command": "g++",
        "args": [
            "-g",
            "client.cpp",
            "-o",
            "Client",
            "-lssl",
            "-lcrypto"
        ],
        "group": {
            "kind": "build",
            "isDefault": true
        },
        "problemMatcher": "$gcc"
    }
]

Dans le fichier launch.json pour le paramètre preLaunchTask si je ne mets que la tâche de construction, cela fonctionne, mais je veux exécuter plusieurs tâches, dans ce cas, CleanUp_Client et Client_Build.

J'ai essayé d'ajouter un autre preLaunchTask - Cependant, il semble que vous ne pouvez utiliser ce paramètre qu'une seule fois, alors j'ai essayé:

"preLaunchTask": "build" + "clean","preLaunchTask": "build"; "clean","preLaunchTask": "build" & "clean","preLaunchTask": "build" && "clean",

Tout cela sans succès, pas la syntaxe correcte.

Aussi en deuxième partie, j'aimerais savoir comment fonctionne la partie de groupe et ce que cela signifie pour "isDefault": vrai.

Pour votre référence: https://code.visualstudio.com/docs/editor/tasks

8
Revx0r

Voici quelque chose qui fonctionnera. Fondamentalement, vous effectuez une autre tâche dans laquelle vous incluez toutes les autres tâches que vous souhaitez exécuter sur votre preLaunchTask avec le mot clé dependsOn.

Code de référence:

    "tasks": [
    {
        "label": "CleanUp_Client",
        "type": "Shell",
        "command": "rm",
        "args": [
            "-f",
            "Client"
        ]
    },
    {
        "label": "Client_Build",
        "type": "Shell",
        "command": "g++",
        "args": [
            "-g",
            "client.cpp",
            "-o",
            "Client",
            "-lssl",
            "-lcrypto"
        ],
        "group": {
            "kind": "build",
            "isDefault": true
        },
        "problemMatcher": "$gcc"
    },
    {
        "label": "Build",
        "dependsOn": [
            "CleanUp_Client",
            "Client_Build"
        ]
    }
]

Dans ce cas, vous devez définir votre preLaunchTask sur "Build" et il exécutera les deux tâches.

Je suis curieux de savoir si quelqu'un d'autre connaît une alternative ou la syntaxe correcte pour simplement exécuter plusieurs tâches à partir de launch.json preLaunchTask

9
Revx0r