我正在从Eclipse迁移到VS-Code,并且试图快速进行部署过程。我想创建一个vs代码任务来部署WAR文件。 我正在使用命令 adashen.vscode-tomcat:tomcat.war.run ,但该命令无法正常工作。
我正在将Tomcat用于Visual Studio Code扩展v.0.11.1。
我的task.json看起来像这样:
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "Build",
"type": "shell",
"command": "gradlew clean build",
"group": {
"kind": "build",
"isDefault": true
}
},
{
"label": "Deploy",
"type": "shell",
"command": "adashen.vscode-tomcat:tomcat.war.run",
"args": ["${workspaceFolder}\\build\\libs\\SMEWeb-0.0.1-SNAPSHOT.war"]
}
]
}
执行后,得到以下错误:
在文件夹SMEWeb中执行任务:adashen.vscode-tomcat:tomcat.war.run C:\ WorkspaceGit \ sme \ SMEWeb \ build \ libs \ SMEWeb-0.0.1-SNAPSHOT.war << / p>
文件名,目录名称或卷标语法不正确。
终端进程命令'C:\ Windows \ system32 \ cmd.exe / d / c adashen.vscode-tomcat:tomcat.war.run C:\ WorkspaceGit \ sme \ SMEWeb \ build \ libs \ SMEWeb-0.0.1-SNAPSHOT.war' 无法启动(退出代码:1)
终端将被任务重用,按任意键将其关闭。
有人知道吗? 谢谢
答案 0 :(得分:1)
在阅读source code之后,我认为如果该方法将文件路径作为字符串接受,或者您设法将'vscode.Uri'对象作为参数传递给'tomcat.war,则它可以工作。运行”命令。
这是我在整个过程中可能会遇到的最好情况,但是每次运行此任务时,您仍然必须手动选择.war:
{
"version": "2.0.0",
"tasks": [
{
"label": "compile",
"type": "shell",
"command": "mvn compile",
"problemMatcher": []
},
{
"label": "package",
"type": "shell",
"command": "mvn package",
"dependsOn": ["compile"],
"problemMatcher": []
},
{
"label": "Run WAR",
"command": "${input:runWar}",
"dependsOn": ["package"],
"problemMatcher": []
}
],
"inputs": [
{
"id": "runWar",
"type": "command",
"command": "tomcat.war.run"
// ,"args": { DOESNT WORK =/
// "uri" : {"fsPath" : "${workspaceFolder}/target/ROOT.war"}
// }
}
]
}
答案 1 :(得分:0)
它可能看起来像这样。
{
"label": "Run",
"command": "${command:tomcat.war.run}",
"problemMatcher": []
}
经过大量的搜索,我从这里得到了帮助:https://stackoverflow.com/a/57470981/4588923
我还没有找到一种方法来提供.war文件作为参数,并且它可以工作。
尽管该调用可以从task.json执行,但是我认为主要问题是扩展名不支持这样做。可能是功能请求按顺序进行。