maven 是个好工具,管理起来还是相当方便的,不过说道用 eclipse 来调试,那应该是 eclipse 的远程调试,步骤和各设置如下:

    1、工具栏 –> Run –>External Tools –>External Tools Configurations,配置如下

maven eclipse 调试那些事_第1张图片

     在右侧的 environment 的选项卡添加如下变量:

MAVEN_OPTS = -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=4000,server=y,suspend=y

    2、Run –> Debug Configurations,设置如下:

maven eclipse 调试那些事_第2张图片

    在右侧 environment 的选项卡添加如下变量(与前面一致,address 为端口号)

MAVEN_OPTS = -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=4000,server=y,suspend=y

 

    3、重新打开第一步的设置面板,点击 Run;打开第二次设置的面板,点击Debug,就可以开始调试之旅啦,使用这种方法调试,相对本地的调试,应该会没有那么完美,我所知道的就有 display 功能不能用。

 

    另外,在 maven 开发里会经常遇到,一个工程由工作空间里好几个项目组成,在调试过程中,调试各模块的代码,也是一种常见的需要,具体设置如下:

    1、运行 maven 项目时,选择 Resolve workspace artifacts

maven eclipse 调试那些事_第3张图片

    2、在 Refresh 选项卡里,勾选 resources upon completion

maven eclipse 调试那些事_第4张图片

   3、Source 选项卡添加进工作空间 Workspace

maven eclipse 调试那些事_第5张图片

    如此设置,在 调试时,便可顺利切换到各个模块代码中。另外,如果调试时需要看maven依赖的第三方jar包的源码,可以直接在 jar 包上右键下载源码。

 

   若遇上 JVM_BIND(8080) 的问题,可以使用以下两个命令解决:

netstat -aon|findstr “8080”

   知道对应进程的 pid,再输入

tasklist|fidstr "pid"

    在资源管理器关闭该 pid 进程即可。