Maven 使用mvnDebug的远程调试不会在断点处停止

Maven 使用mvnDebug的远程调试不会在断点处停止,maven,debugging,Maven,Debugging,受此启发,我正在尝试使用mvnDebug和IntelliJ远程调试Maven项目。但是,执行不会在我的断点上停止。 要复制一个简单的Hello World示例,请执行以下操作: 在本地计算机上: git clone https://github.com/LableOrg/java-maven-junit-helloworld.git cd java-maven-junit-helloworld mvnDebug test 在远程计算机上: 开放智能 从版本控制->Git签出,设置URL:,克隆

受此启发,我正在尝试使用mvnDebug和IntelliJ远程调试Maven项目。但是,执行不会在我的断点上停止。 要复制一个简单的Hello World示例,请执行以下操作:

在本地计算机上:

git clone https://github.com/LableOrg/java-maven-junit-helloworld.git
cd java-maven-junit-helloworld
mvnDebug test
在远程计算机上:

开放智能 从版本控制->Git签出,设置URL:,克隆 打开项目 打开Hello.java,在显示printer.printlnHELLO的行上设置断点

运行->调试…->编辑配置…,添加新配置->远程

设置调试器模式:连接,传输:套接字,主机:,端口:8000 应用、调试 测试现在将不在断点处停止运行。为什么?

您需要将maven surefire插件的DebuggeForkeMode设置为true

然后在端口5005上添加另一个远程调试配置。

运行mvnDebug命令时,使用-DforkMode=never

因此,您的maven命令将如下所示:

mvnDebug -DforkMode=never -Dmaven.surefire.debug clean install

有关-DforkMode=never的更多信息,请阅读

Hi@amseger,感谢您的帮助。这对我有用!我还有一个问题。为什么我需要启动2个远程调试:1个在端口5005上,另一个在端口8000上?您好。这些分别是maven surefire插件和mvnDebug的默认端口。实际上,我发现不使用mvnDebug更容易,只需使用mvn f.e.mvn测试或IDEA的maven工具栏中的via测试目标即可。在这种情况下,您只需要在端口5005上启动远程调试,但DebuggedForkedProcess标志无论如何都应该设置为true。适用于maven 3.6.1,对旧版本一无所知。
mvnDebug -DforkMode=never -Dmaven.surefire.debug clean install