java 使用VSCode调试多模块maven项目的正确方法是什么?

w8biq8rn  于 2023-11-15  发布在  Java
关注(0)|答案(1)|浏览(193)

以下是我的特定案例的一些背景。我得到了一个多模块maven项目,并在VSCode中将整个项目作为一个工作区打开。模块作为.war文件部署到JBoss服务器。每个模块都有自己的artifactId,并且可以调用其他模块(通过HTTP或其他协议)。我在.vscode目录下创建了一个launch.json文件。这个.vscode目录位于项目根目录下的其他模块中。launch.json文件包含以下内容:

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "java",
      "name": "Debug (Attach) - Remote",
      "request": "attach",
      "hostName": "<ip_address>",
      "port": 8787
    }
  ]
}

字符串
如果我不需要在调试控制台中计算语句,则可以使用此方法。当我需要计算单个模块的语句时,也可以添加"projectName": "<artifactId>"。但是,我无法同时调试多个模块。我目前正在做的是1)停止调试器,2)将projectName编辑为下一个模块的artifactId,3)再次附加调试器**这听起来不像是在VSCode中调试这种类型的项目的最佳方式。**请注意,我还试图将父POM artifactId甚至项目根目录名称设置为projectName,但它们都不起作用(在这种情况下,它只是说“Cannot evaluate because of java.lang.IllegalStateException:Project cannot be found”)。

qhhrdooz

qhhrdooz1#

您是否尝试过将projectName设置为一个名称?

{
    "version": "0.2.0",
    "configurations": [
      {
        "type": "java",
        "name": "Debug (Attach) - Remote",
        "request": "attach",
        "hostName": "<ip_address>",
        "projectName": "*",
        "port": 8787
      }
    ]
  }

字符串
据我所知,Java调试器的支持是依赖于调试器的,所以如果Java调试器没有实现它,这可能就不起作用了。
但是,您可能希望创建多个配置,以避免每次都必须替换projectName

{
    "version": "0.2.0",
    "configurations": [
      {
        "type": "java",
        "name": "Debug (Attach) - Remote - Prj1",
        "request": "attach",
        "hostName": "<ip_address>",
        "projectName": "project1",
        "port": 8787
      },
      {
        "type": "java",
        "name": "Debug (Attach) - Remote - Prj2",
        "request": "attach",
        "hostName": "<ip_address>",
        "projectName": "project2",
        "port": 8787
      }
    ]
  }


您可以轻松地运行一个你需要从运行和搜索菜单。
编辑:刚刚注意到这个问题已经3年了……哦,好吧,如果它仍然需要的话

相关问题