1

我有一个 Visual Studio Code 项目,我在其中定义了自定义 make all 和 make clean build 任务。

如何创建一个新任务“rebuild”,它将组合这些任务以便运行 make clean 然后运行 ​​make all。

我当前的tasks.json

{
"version": "2.0.0",
"tasks": 
[
    {
        "label": "make debug",
        "type": "shell",
        "command": "make",
        // use options.cwd property if the Makefile is not in the project root ${workspaceRoot} dir
        "options": {
            "cwd": "${workspaceRoot}/Debug"
        },
        // start the build without prompting for task selection, use "group": "build" otherwise
        "group": {
            "kind": "build",
            "isDefault": true
        },
        "presentation": {
            "echo": true,
            "reveal": "always",
            "focus": false,
            "panel": "shared"
        },

        // arg passing example: make all
        "args": ["all", "-B"],
        // Use the standard less compilation problem matcher.
        "problemMatcher": {
            "owner": "cpp",
            "fileLocation": ["absolute"],
            "pattern": {
                "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
                "file": 1,
                "line": 2,
                "column": 3,
                "severity": 4,
                "message": 5
            }
        },

    },
    {
        "label": "make clean debug",
        "type": "shell",
        "command": "make",
        // use options.cwd property if the Makefile is not in the project root ${workspaceRoot} dir
        "options": {
            "cwd": "${workspaceRoot}/Debug"
        },
        // start the build without prompting for task selection, use "group": "build" otherwise
        "group": {
            "kind": "build",
            "isDefault": true
        },
        "presentation": {
            "echo": true,
            "reveal": "always",
            "focus": false,
            "panel": "shared"
        },

        // arg passing example: make all
        "args": ["clean", "-B"],
        // Use the standard less compilation problem matcher.
        "problemMatcher": {
            "owner": "cpp",
            "fileLocation": ["absolute"],
            "pattern": {
                "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
                "file": 1,
                "line": 2,
                "column": 3,
                "severity": 4,
                "message": 5
            }
        }
    }
]

}

实际上,这是一个很好的选择,但我真的很想知道如何做到这一点。

我不想添加任何外部脚本或助手,我只想使用 VS 来完成这项任务。

我确实在这里查看了文档并搜索了 SO,但我没有找到我要找的东西。

4

1 回答 1

0

您是否尝试添加新任务,但使用如下参数?

"args": [
    "clean", "all" 
],
于 2018-08-31T03:05:47.497 回答