【问题标题】:Debugging in maven with mvnDebug command使用 mvnDebug 命令在 maven 中进行调试
【发布时间】:2015-06-01 09:01:24
【问题描述】:

我读到这个: Debugging in Maven?

我正在为我正在尝试调试的服务运行 intellij 远程调试和 maven。

我在跑步

mvnDebug tomcat7:run 

这给了我以下结果

Preparing to Execute Maven in Debug Mode
Listening for transport dt_socket at address: 8000
^Ctai-m:sb-api-internal-server tai$ m

我的问题是我想轻松更改端口。我知道我可以进入 pom.xml 文件并对其进行更改,或者我可以执行以下操作:

mvnDebug.bat

@REM set MAVEN_OPTS=-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000

但我希望能够在命令行上指定我的端口。有没有办法做到这一点?我希望能够同时调试在不同地址上运行的多个服务,并且我的印象是必须为每个服务设置和重置调试文件设置会很麻烦。

朋友说应该可以,但我好像没找到解决办法。

基本上我正在寻找一种方法来轻松切换服务正在运行的端口,希望在我启动多个服务时无需多次修改文件。否则还有其他解决方案吗?例如让第一个调试实例在一个端口上运行,然后在另一个端口上运行第二个(硬编码)?

谢谢

【问题讨论】:

    标签: java maven intellij-idea tomcat7


    【解决方案1】:

    哇,Maven 让这变得很困难。在MAVEN_OPTS 中设置-Xrunjdwp 将不起作用,因为mvnDebug.bat 之后添加了自己的,这将覆盖MAVEN_OPTS。我会将mvnDebug.bat 复制到myMvnDebug.bat 并注释掉set MAVEN_DEBUG_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 行。这样你就可以在运行之前在命令行上设置MAVEN_DEBUG_OPT

    C:\somewhere>set MAVEN_DEBUG_OPT=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8001
    C:\somewhere>myMvnDebug.bat
    

    【讨论】:

    • 这是有效的。这很hacky,但它似乎是唯一的解决方案。此外,您可以执行此操作并将多个命令行设置(例如在 4000、5005、6000 上调试)设置为不同的终端命令。谢谢
    【解决方案2】:

    我更改了@set MAVEN_DEBUG_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000

    @set MAVEN_DEBUG_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=%MAVEN_DEBUG_PORT%

    在 mvnDebug.cmd 中,然后在 env 变量中设置 MAVEN_DEBUG_PORT 或在本地设置 @set MAVEN_DEBUG_OPTS=8001,然后再调用 mvnDebug xxx:run(我正在使用 Jetty)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-18
      • 2010-09-22
      • 2019-11-08
      • 2012-03-19
      • 1970-01-01
      • 2020-10-04
      • 1970-01-01
      相关资源
      最近更新 更多