VSCode - 任务可以调用另一个任务吗?

时间:2018-01-26 15:48:08

标签: visual-studio-code

Vscode版本:1.19.3

我想知道是否有办法让一个任务调用另一个任务,比如" preLaunchtask"但是对于常规任务。

原因是因为当我想调试我的代码时,我需要将我的可执行文件重新编译为最新版本,所以我有" preLaunchTask"调用然后需要调用make的CMakeTask来生成我的可执行文件。

3 个答案:

答案 0 :(得分:7)

您可以使其取决于另一个任务。示例:

    {
        "label": "secondTask",
        "type": "shell",
        "command": "<Your second task's command here>",
        "dependsOn": [
            "firstTask"
        ]
    },
    {
        "label": "firstTask",
        "type": "shell",
        "command": "<Your first task's command here>"
    }

答案 1 :(得分:2)

  

可以进行连锁任务。在任务部署中使用“ dependsOn”:['Build']。   source

答案 2 :(得分:1)

<强>总体

是的,您可以自动为其他语言调用自定义脚本,但尚未针对C.来自task docs

  

VS Code当前自动检测以下系统的任务:Gulp,   Grunt,Jake和npm。我们正在使用相应的扩展程序   作者还添加了对Maven和C#dotnet命令的支持。如果   您使用Node.js作为运行时开发JavaScript应用程序   通常有一个package.json文件描述你的依赖关系和   要运行的脚本。

适用于C(或其他自定义)

您希望在构建任务组中定义自定义任务,以便它在那里运行。

  

并非所有任务或脚本都可以在工作区中自动检测到。   有时需要定义自己的自定义任务。假设你   有一个脚本来运行你的测试,因为有必要设置一些   环境正确。该脚本存储在脚本文件夹里面   您的工作区并命名为test.sh for Linux和macOS以及test.cmd for   视窗。从全局任务菜单运行配置任务。这打开了   以下的选择器。

只要系统识别出要使用的二进制文件,就可以创建一个完全随意的命令,它可以是一个PowerShell,bash,batch等脚本,它们按顺序调用构建步骤。这可以是列出其他命令的命令,也可以简单地将多个任意任务添加到此构建组中。

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Run tests",
            "type": "shell",
            "command": "./scripts/test.sh",
            "windows": {
                "command": ".\\scripts\\test.cmd"
            },
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "presentation": {
                "reveal": "always",
                "panel": "new"
            }
        }
    ]
}

作为默认构建任务,它在触发运行构建任务时直接执行(Ctrl + Shift + B)。

任务属性说明:

  • 标签:用户界面中使用的任务标签。
  • 类型:任务的类型。对于自定义任务,这可以是shell或进程。如果指定了shell,则该命令将被解释为shell命令(例如:bash,cmd或PowerShell)。如果指定了process,则该命令将被解释为要执行的进程。如果使用shell,则应将命令的任何参数嵌入到命令属性中以支持正确的参数引用。例如,如果测试脚本接受--debug参数,则命令属性为:./ scripts / test.sh --debug。
  • 命令:要执行的实际命令。
  • windows :任何Windows特定属性。在Windows操作系统上执行命令时,将使用它来代替默认属性。
  • :定义任务所属的组。在示例中,它属于测试组。可以通过从命令选项板运行“运行测试任务”来执行属于测试组的任务。
  • 演示文稿:定义如何在用户界面中处理任务输出。在此示例中,始终显示显示输出的集成终端,并在每次任务运行时创建新终端。