【问题标题】:Java remote debugging: maven 2.2.1Java远程调试:maven 2.2.1
【发布时间】:2013-01-30 12:51:25
【问题描述】:

嗨:我有一个多线程 J2SE 应用程序并使用 maven,我的 IDE 是 eclipse。在 maven 2.2.1 中,有 mvnDebug 将端口 8000 作为远程端口打开。

我运行 mvn -clean test -Dtest=TestClass

然后我配置 Eclipse 远程 Java 应用程序并将主机设置为localhost,端口8000,附加类型。

我在TestClass 中设置了断点。问题/疑问是mvn 命令在断点处根本没有停止运行。我尝试将断点作为挂起线程或挂起 JVM。两者都不起作用。

这个论坛的人可以给我一些提示,我错过了哪一步?

【问题讨论】:

  • 你能粘贴 maven 的输出吗?
  • 其实我运行 mvnDebug -clean test -Dtest=TestClass
  • @autra:pastebin 是什么意思?你想在 mavenDebug clean test -Dtest=TestClass 之后输出吗?
  • 查看 pastebin.com,这是一个允许粘贴和复制大量文本的网站。您创建一个新的并把 url 放在这里。是的,我想要 Maven 的输出。
  • 这里有类似的东西:pastebin.com/eDGq6hGH

标签: java eclipse


【解决方案1】:

这是我使用的命令:

mvn test -Dtest=TestClass -Dmaven.surefire.debug="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -Xnoagent -Djava.compiler=NONE"
  • address=8000 定义 JDB 的地址
  • suspend=y 定义 JVM 将在启动时停止并等待调试器连接。设置为n 以正常启动,不停止。如果您想调试上下文启动,此选项可能很有用。

【讨论】:

  • 不是和mvnDebug一样吗?不管怎样,我会试试看的。
  • 我相信它有点不同。 mvnDebug 在调试模式下启动 maven,但我的命令仅在调试模式下启动测试。 (Surefire 运行新的测试流程)。
  • 但我收到错误“无法连接到远程虚拟机。连接被拒绝。连接被拒绝:连接”。
  • 它甚至没有“准备在调试模式下执行Maven监听地址:8000的传输dt_socket”
  • 为了让 -Dmaven.surefire.debug 正常工作,我还能做什么?
【解决方案2】:

试试surefire插件 mvn clean test -Dmaven.surefire.debug

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-08
    • 2013-01-29
    • 2016-05-18
    • 2016-09-27
    • 2010-11-01
    相关资源
    最近更新 更多