我正在使用 maven/surefire/eclipse 编写一些代码,然后对其进行测试/调试。
标准方法是使用 maven.surefire.debug maven 属性。默认情况下,启用此属性时,maven 开始侦听端口 5005,我可以使用远程调试器附加到被调试的进程。当测试完成时,远程调试器与服务器断开连接。
在 eclipse 中使用时,此过程涉及两个步骤:
- 运行行家
- 使用远程启动配置连接
我想要实现的是将其减少到:
- 运行行家
我发现,将 maven.surefire.debug 属性设置为一些远程调试选项会改变远程调试行为。因此,当我指定即
-Dmaven.surefire.debug="-Xdebug -Xrunjdwp:transport=dt_socket,server=n,address=5005"
然后 build 将尝试连接到监听端口 5005 的我的 Eclipse 进程。这样我反转了 Maven 和 Eclipse 的默认客户端/服务器角色。
然而,这种方法存在一个大问题。它没有给我任何东西,因为在 maven 构建完成后,eclipse 停止侦听服务器端口。这是我不明白的部分。当我作为调试客户端从 Eclipse 连接到例如 WebLogic 服务器时,它允许我随意连接/断开连接任意多次。
任何人都知道这是否正常,或者我可能需要指定一些额外的选项来使调试 maven 测试更容易?