Java 如何创建vs代码任务以在tomcat扩展上部署WAR文件?

Java 如何创建vs代码任务以在tomcat扩展上部署WAR文件?,java,tomcat,visual-studio-code,Java,Tomcat,Visual Studio Code,我正在从Eclipse迁移到VS代码,并尝试快速完成部署过程。我想创建一个vs代码任务来部署WAR文件。 我正在使用命令adashen.vscode-tomcat:tomcat.war.run,但它不起作用 我正在使用Tomcat进行Visual Studio代码扩展v.0.11.1 My tasks.json如下所示: { // See https://go.microsoft.com/fwlink/?LinkId=733558 // for the documentation

我正在从Eclipse迁移到VS代码,并尝试快速完成部署过程。我想创建一个vs代码任务来部署WAR文件。 我正在使用命令adashen.vscode-tomcat:tomcat.war.run,但它不起作用

我正在使用Tomcat进行Visual Studio代码扩展v.0.11.1

My tasks.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它可能看起来像这样

    {
        "label": "Run",
        "command": "${command:tomcat.war.run}",
        "problemMatcher": []
    }
在对自己的用途进行了大量搜索之后,我从这里获得了帮助:

我还没有找到一种方法来提供.war文件作为参数,它是有效的

虽然tasks.json可以调用,但我认为主要的问题是扩展不支持这样做。也许功能请求已经就绪。

在阅读之后,我认为如果该方法将文件路径作为字符串接受,或者如果您设法将“vscode.Uri”对象作为参数传递给“tomcat.war.run”命令,则该方法可能会起作用

这是我在整个过程中所能想到的最好方法,但您仍必须在每次运行此任务时手动选择.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"}
//          }
        }
    ]
}

如果您不使用任务,您可以成功部署吗?是的,我必须转到生成的WAR文件,右键单击并“在Tomcat服务器上运行”。您是否尝试将
cd
添加到生成的WAR文件中,然后在任务
命令中删除.WAR?是的,它不起作用。即使是在没有参数的情况下启动tomcat的简单命令(“命令”:“adashen.vscode tomcat:tomcat.server.start”)也会返回相同的错误。同意,实际上我放弃了VS代码来做后端工作,返回Eclipse。我返回Netbeans进行代码热交换、调试并部署到tomcat。现在是2021年,VSCode的tomcat扩展还没有实现。