使用 mvnDebug 命令在 maven 中调试
Debugging in maven with mvnDebug command
我读到这个:
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
但我希望能够在命令行上指定我的端口。有什么办法吗?我希望能够一次调试不同地址 运行 上的多个服务,我的印象是必须为每个服务设置和重置调试文件设置会很麻烦。
朋友说应该可以,但是我好像找不到解决方法
本质上,我正在寻找一种方法来轻松切换服务 运行 上的端口,希望在启动多个服务时无需多次修改文件。否则还有其他解决方案吗? Ex 在一个端口上有第一个调试实例 运行,然后在另一个端口上有第二个(硬编码)?
谢谢
哇,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
我更改了@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%
in mvnDebug.cmd 然后在 env 变量中设置 MAVEN_DEBUG_PORT 或在调用 mvnDebug xxx:run 之前在本地使用 set @set MAVEN_DEBUG_OPTS=8001 (我正在使用 Jetty )
我读到这个: 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
但我希望能够在命令行上指定我的端口。有什么办法吗?我希望能够一次调试不同地址 运行 上的多个服务,我的印象是必须为每个服务设置和重置调试文件设置会很麻烦。
朋友说应该可以,但是我好像找不到解决方法
本质上,我正在寻找一种方法来轻松切换服务 运行 上的端口,希望在启动多个服务时无需多次修改文件。否则还有其他解决方案吗? Ex 在一个端口上有第一个调试实例 运行,然后在另一个端口上有第二个(硬编码)?
谢谢
哇,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
我更改了@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%
in mvnDebug.cmd 然后在 env 变量中设置 MAVEN_DEBUG_PORT 或在调用 mvnDebug xxx:run 之前在本地使用 set @set MAVEN_DEBUG_OPTS=8001 (我正在使用 Jetty )