使用mvnDebug命令在maven中进行调试

Tai*_*Tai 4 java intellij-idea maven tomcat7

我读到这个: 在Maven中调试?

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

我在跑

mvnDebug tomcat7:run 
Run Code Online (Sandbox Code Playgroud)

这给了我以下结果

Preparing to Execute Maven in Debug Mode
Listening for transport dt_socket at address: 8000
^Ctai-m:sb-api-internal-server tai$ m
Run Code Online (Sandbox Code Playgroud)

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

mvnDebug.bat

@REM set MAVEN_OPTS=-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
Run Code Online (Sandbox Code Playgroud)

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

一位朋友说应该可以,但我似乎无法找到解决方案.

基本上我正在寻找一种方法来轻松切换服务正在运行的端口,而无需在启动多个服务时多次修改文件.否则你能解决另一种解决方案吗?Ex让第一个调试实例在一个端口上运行,然后将第二个调试实例放在另一个端口上(硬编码)?

谢谢

Kev*_*don 5

哇,Maven让这很困难.设置-XrunjdwpMAVEN_OPTS将无法正常工作,因为mvnDebug.bat后来添加了自己,这将覆盖MAVEN_OPTS.我会复制mvnDebug.batmyMvnDebug.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
Run Code Online (Sandbox Code Playgroud)