使用mvnDebug进行远程调试,不会在断点处停止

时间:2019-03-20 12:04:59

标签: maven debugging

https://stackoverflow.com/a/14853683/286795的启发,我试图使用mvnDebug和IntelliJ远程调试Maven项目。但是,执行不会在我的断点处停止。 重现一个简单的Hello World示例:

在本地计算机上:

git clone https://github.com/LableOrg/java-maven-junit-helloworld.git
cd java-maven-junit-helloworld
mvnDebug test

在远程计算机上:

  1. 打开IntelliJ
  2. 从Version Control-> Git中检出,设置URL:https://github.com/LableOrg/java-maven-junit-helloworld.git,克隆
  3. 打开项目
  4. 打开Hello.java,在显示printer.println(HELLO);

  5. 的行上设置断点
  6. 运行->调试...->编辑配置...,添加新配置->远程

  7. 设置调试器模式:附加,传输:套接字,主机:,端口:8000
  8. 应用,调试

现在将运行测试,而不会在断点处停止。为什么?

2 个答案:

答案 0 :(得分:2)

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

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

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

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

答案 1 :(得分:0)

您需要将debugForkedMode中的maven-surefire-plugin设置为true

 <plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-surefire-plugin</artifactId>
   <version>${maven-surefire-plugin.version}</version>
   <configuration>
      <debugForkedProcess>true</debugForkedProcess>
   </configuration>
 </plugin>

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