eclipse远程调试命令行执行的maven运行程序

版权声明:本文为博主原创文章,转载请注明源地址。 https://blog.csdn.net/10km/article/details/86064507

有的时候,我们需要调试命令行执行的maven运行程序。该怎么办呢?
我们知道eclipse本身可以执行远程调试,具体做法网上都有不少文章, 这里不再多说。
现在的问题就是在maven在执行时,如何能让eclipse远程调试正在执行的maven程序
maven在本身也是java程序,所以只要能让maven运行时开启远程调试端口,eclipse远程调试功能就可以附加到maven的JVM,就可以实现远程调试。
下面的命令就是示例在命令行执行java程序时开启远程调试端口.-Xrunjdwp:transport=dt_socket,server=y,address=8000,suspend=y这一串参数就是用来开启远程调试端口

java -Xrunjdwp:transport=dt_socket,server=y,address=8000,suspend=y -jar target\facelog-service-1.0.10-SNAPSHOT-standalone.jar

既然maven也是个java程序,同理只要在maven执行时加上上面的参数就可以开启远程调试端口了。

maven本身就提供了一个名为mvnDebug的脚本程序,用于Debug方式运行,mvnDebug与mvn命令唯一的不同就是通过MAVEN_DEBUG_OPTS环境变量添加了开启远程调试端口的JVM参数 -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000(参见mvnDebug脚本)。

以下为mvnDebug(window版)的脚本内容:

@setlocal
@set MAVEN_DEBUG_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
@ 设置环境变量后执行原来的mvn.md脚本
@call "%~dp0"mvn.cmd %*

所以在命令行执行maven时,关键就是MAVEN_DEBUG_OPTS这个环境变量,只要这个环境变量设置了开启远程调试端口的JVM参数,执行传统的mvn命令,也可以实现远程调试。

猜你喜欢

转载自blog.csdn.net/10km/article/details/86064507