我读到了这个: 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让第一个调试实例在一个端口上运行,然后将第二个调试实例放在另一个端口上(硬编码)?
由于
答案 0 :(得分:5)
-Xrunjdwp
中设置MAVEN_OPTS
无法正常工作,因为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
。
{{1}}
答案 1 :(得分:0)
我更改了@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)