ale*_*lex 5 dependencies build task chain visual-studio-code
我的VSCode项目是多根工作区。那就是我有多个工作区,每个工作区在单独的目录中,每个工作区都有一个.vscode文件夹。
我正在尝试通过构建任务构建具有每个模块之间依赖关系的工作区。
我尝试为某个任务设置dependsOn参数,但是会产生以下错误:
Couldn't resolve dependent task 'build FOO' in workspace folder 'BAR'
(此处的BAR构建任务取决于FOO)
有没有更好/正确/任何方法可以实现我的目标?
小智 13
tasks您的文件中可以有一个部分.code-workspace。您可以在其中创建“构建全部”之类的任务并定义dependsOn任务。但是,您也无法从工作区文件夹引用构建任务(对我来说,这听起来像是一个合理的功能,我相信他们应该在某个时候实现它)。我的解决方法是将相关构建任务从子任务文件复制到文件中.code-workspace,并在我的“构建全部”任务中引用它们。
例子.code-workspace:
{
"folders": [
{
"path": "proj-A"
},
{
"path": "proj-B"
}
],
"tasks": {
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "Build A",
"command": "make",
"args": ["-j4"],
"options": {
"cwd": "${workspaceFolder}/../proj-A",
},
"problemMatcher": [
"$gcc"
],
"group": "build",
},
{
"type": "shell",
"label": "Build B",
"command": "make",
"args": ["-j4"],
"options": {
"cwd": "${workspaceFolder}/../proj-B",
},
"problemMatcher": [
"$gcc"
],
"group": "build",
},
{
"type": "shell",
"label": "Build all",
"command": "echo",
"args": ["Building everything"],
"options": {},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"dependsOrder":"sequence",
"dependsOn": ["Build A", "Build B"]
},
]
}
}
Run Code Online (Sandbox Code Playgroud)
请注意cwd各个构建任务中的选项。${workspaceFolder}似乎设置为该"folders"部分中的第一个路径。您还可以设置cwd为绝对路径。
这有点 hacky,而且必须复制构建任务这一事实并不美观,但它目前可以工作,并且一旦可以引用子任务文件的任务,就可以轻松调整。
| 归档时间: |
|
| 查看次数: |
341 次 |
| 最近记录: |