如何从 Maven 命令行远程调试 Java 应用程序

Posted

技术标签:

【中文标题】如何从 Maven 命令行远程调试 Java 应用程序【英文标题】:How to remote debug java application from maven command line 【发布时间】:2014-03-08 08:20:02 【问题描述】:

我有一个在 IntelliJ 中运行的 java 应用程序。我可以知道如何从 Maven 命令行远程调试应用程序吗?

我尝试使用 mvnDebug 全新安装。但这给我一个错误,说找不到命令

【问题讨论】:

不确定是否理解问题。如果您的应用程序在 IntelliJ 中运行,为什么要使用 Maven 命令进行远程调试? 我的一个测试用例在 IntelliJ 中运行失败,但是当我运行 mvn clean test 时它们失败了。这就是为什么我想从命令行进行远程调试 In IntelliJ, how do i debug a maven test goal? 的可能重复项 @RakeshGourineni:很难理解你想要达到的目标。请编辑问题并重新措辞,使其包含您问题中的信息。 @Rakesh,如果它与万无一失相关,请看这里:maven.apache.org/surefire/maven-surefire-plugin/examples/… 【参考方案1】:

可以使用远程调试:

mvn exec:exec -Dexec.executable="java" -Dexec.args="-classpath %classpath -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044 com.mycompany.app.App"

然后在你的 Eclipse 中,你可以使用远程调试并将调试器附加到 localhost:1044。 或者配置目标来调试配置,创建“Maven build”调试配置:

Goals = -Dmaven.surefire.debug test
Profiles = myconfigprofile,weblogic

或针对特定的测试套件:

Goals = -Dmaven.surefire.debug -Dtest=com.myorg.mypkg/MyTestSuite.java test
Profiles = myconfigprofile,weblogic

创建额外的“远程 Java 应用程序”配置:

主机 = 本地主机端口 = 5005

您可以在此处找到更多文档: http://maven.apache.org/surefire/maven-surefire-plugin/examples/debugging.html

【讨论】:

请参阅here,了解要使用的正确命令行选项。 XDebug 很慢。

以上是关于如何从 Maven 命令行远程调试 Java 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Eclipse 上调试远程部署的 Spring Boot 应用程序和 Maven

Maven:如何从命令行传递参数运行 .java 文件

要设置哪些 Java 命令行选项以允许远程调试 JVM?

从命令行运行 Netbeans maven 项目?

从命令行运行声纳分析时出现链接错误(maven 项目)

如何使用 Idea 远程调试 Java 代码