【问题标题】:How to debug a Java maven spring-boot app in vs code?如何在 vs 代码中调试 Java maven spring-boot 应用程序?
【发布时间】:2017-09-05 10:31:20
【问题描述】:

我能够调试一个简单的 Java hello world。第一步是用javac -g“编译”。我查找了如何使用 maven 完成相同的操作并找到 http://docs.spring.io/spring-boot/docs/current/maven-plugin/examples/run-debug.html,但这些说明用于运行应用程序并等待调试器连接。

我还尝试在launch.json 中将target/classes 用于classpath。调试器抱怨它在根目录/ 中找不到文件,但它运行了。尽管调试器正在运行,但应用程序没有响应 HTTP 请求。

是否有mvn 命令可以用javac -g 编译应用程序并生成.class 调试器是否能够成功运行?

【问题讨论】:

    标签: java maven spring-boot visual-studio-code


    【解决方案1】:

    您将只能使用 vs 代码进行远程调试,因此一个简单的命令将是 mvnDebug spring-boot:run,它将与 mvn spring-boot:run 执行相同的操作,但添加以下选项:

    -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=y
    

    然后你可以从 vs 代码附加,一个示例 launch.json 看起来像:

    {
     "version": "0.2.0",
      "configurations": [
    
        {
          "type": "java",
          "name": "Debug (Launch)",
          "request": "launch",
          "mainClass": "",
          "args": ""
        },
        {
          "type": "java",
          "name": "Debug (Attach)",
          "request": "attach",
          "hostName": "localhost",
          "port": 8000
        }
      ] 
    }
    

    你可以在调试面板中选择Debug(Attach)运行。

    【讨论】:

    • PS:如果您使用的是 Java 1.8+,请改用这些标志 mvn spring-boot:run -Dspring-boot.run.jvmArguments="agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=8000",此处回答:github.com/Microsoft/vscode-java-debug/issues/300
    【解决方案2】:

    假设您已经安装了 collection 包Java Extension Pack by Microsoft调试 Maven Spring Boot 应用程序似乎可以直接使用。。 p>

    从项目的根目录启动code并“开始调试”。 有多种方法可以启动调试器——最直接的方法是点击F5,如果需要,选择Java

    在标称条件下,这会触发以下步骤:

    1. 您的应用程序被编译成类文件
    2. 它会查找并启动您的应用程序的main 函数——其中应包括SpringApplication.run()
    3. 应用程序运行(启用断点)并将日志输出发送到终端面板。

    相关链接:

    【讨论】:

    • TODO:环境变量
    • 使用环境变量调试:( export spring_profiles_active=local ; code . )
    • 可能需要在当前编辑窗口中打开一个java文件。如果这不起作用,请尝试使用应用程序的 main() 打开文件。
    猜你喜欢
    • 2018-05-13
    • 1970-01-01
    • 1970-01-01
    • 2015-05-25
    • 2015-03-09
    • 1970-01-01
    • 1970-01-01
    • 2020-03-18
    • 1970-01-01
    相关资源
    最近更新 更多